2017-07

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

3Dモデルのミップマップの調整

ミップマップというのは画面内で小さく表示されるときに元データよりも小さいテクスチャーを貼り付けることで、テクスチャーが詳細すぎるゆえに発生するジラジラ現象を軽減してくれる仕組みです。(無駄に大きなテクスチャーをVRAMへ転送させないため、という意味もあります)。最近ではデフォルト感があり、XNAでも何も設定しなければ、3Dモデルのテクスチャーにはミップマップが設定されます。逆にテクスチャーをコンテンツとして読み込む場合はミップマップは生成されない設定なっています。
XNAでは、3Dモデルのテクスチャーがモデルと同時に(自動的に)読み込まれるため、モデルのプロパティ内でミップマップの設定を行います。
090923_MipMap2.jpg
逆に言うと、3Dモデルで使用されるテクスチャーを個別にミップマップなどの設定はできないようです。試しにモデル内で使用されるテクスチャーをコンテンツとしても読み込んでみましたが、別のテクスチャーとして扱われてしまいます(binフォルダに出力されているxnbを見ると、モデル内に含まれているテクスチャーにはファイル名に_0が付与されていることからも別扱いであることがわかります)。

実は今までもいくつかのモデル作成時にミップマップのために結果が思ったようにいかないことがありました。特にUVを細かく設定しているものや、細いラインが多いテクスチャーでそうした問題にぶち当たってました。スケルトンキングの歯のテクスチャーがつぶれていたとか…。
で、今回プレイヤーのスカートの中がやはり奇妙な状態になっていることに気づきました。
090923_MipMap.jpg
一応紳士なのでパンツは見えない角度で撮影しましたが、ミップマップの有無でスカート裏の柄が違っていることがハッキリとわかります。これはスカート裏のUVがギリギリにあるため、ミップマップで生成された縮小版テクスチャーでは、となりのテクセル(テクスチャー画像上のピクセル)を拾いやすくなってしまっているためです。ミップマップをOFFると問題なくなりますが、細いラインがかなりジラついてしまいます。静止画だとそれほど気にならないですが、動いていると目立ちます。ていうかスカートの裏地を作れという話でもあります。

● COMMENT FORM ●

お~。こうして比較すると一目瞭然ですね!
バイリニアもかかっているせいで、スカートのチェックの線や腰の辺りの洋服部分もボヤけている感じにもなってますね。
私は「モデルやテクスチャはずっと後の工程だからいいや」なので、この辺は全然気にしてなかったのですが、ミップマップのレベルって指定できたんでしたっけ?trueなら自動計算されちゃってますかねぇ?

こんばんわ~OKIさん

ミップマップレベルについては調べてないですが、
うまくその辺が機能するのであれば、いろいろと手間が省けそうですね。
正直読み込んだリソースごとにプロパティ開いて設定するのは面倒なんですよね…。

ググレカスで少し調べたら、総本山の方のところでも少し書いてありますね(^^ゞ
基本はシェーダーの方で自動計算ですか…なるほど…
自前でシェーダーとかいじるとUVWの設定で行う感じみたいですね。
まぁ、私はこの辺はいっかなぁ~という感じですw
(ゲームプログラマーの友人と開発を再開する事があったら彼に任せよう…(^^;)


管理者にだけ表示を許可する

トラックバック

http://karuduck.blog50.fc2.com/tb.php/145-47904077
この記事にトラックバックする(FC2ブログユーザー)

NEW ENTRY «  | BLOG TOP |  » OLD ENTRY

プロフィール

Karu_gamo

Author:Karu_gamo
<メールアドレス>
karu_gamo#hotmail.co.jp
#を@に置き換えてえてください。

<自分リンク>
かるがも研究所【新】
YouTubeチャンネル
公開素材置き場
仕様書
旧ブログ(見るとこないです)
管理者ページ

リンク

YouTube動画

FC2カウンター

カテゴリー

Twitter

 

月別アーカイブ

RSSフィード

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。