2012年8月21日火曜日

VrayDisplacement メモ 04

VrayBmpFilter の検証です。
前回「VrayHDRIがいい」なんてことを言いましたが、まだVrayBmpFilterが残っていました。
一騎打ちと行きましょうか。。。


まずVrayBmpFilterとは何ぞやと。
マニュアルを読むと、どうやらディスプレイスメントの為に用意されたマップのようです。
例えばZBrushなどの他のソフトで作られたディスプレイスメントマップを読み込むのに適しているのだとか。16bitのtiffファイルがいいみたいです。

そもそもZBrushで作られたマップ類はMaxと違いV方向に反転してしまいます。もちろんZBrush上で反転させてから保存することもできますが手間がかかります。
しかしVrayBmpFilterはマップを読み込む際に内部でV方向に反転してくれるらしく、事前に反転しておく手間が省けるわけですね。

本当に反転しているのかどうかを調べるためにも、今回はわかりやすくこんなマップを用意しました。
















VrayHDRIの時と同様、2.0×2.0ピクセルと解像度高くした2種類のマップを用意しました。

まずはこんなシーンです。










2.0×2.0ピクセルのマップを読み込んだ直後です。
エディタ内のスロットが早速怪しいです。
あと、デフォルトでオフセットがUV共に-0.5が入っています。

レンダリングすると













よくないですね・・・


ではハイレゾのマップに差し替えて、かつオフセットを0にしてみます。

とその前に、なぜオフセットが-0.5なのか。
これ、ZBrushに原因があるみたいですね。

まずはこれを見てください。















UV展開用のパネルです。
ここのデフォルト値を見ると・・・・















なんと-0.5オフセットされています!

つまりこれを相殺するためにVrayBmpFilterでもオフセットが掛かっているんだと思います。

でも、だとしたらZBrushから出した「v方向に反転、さらにuv共に-0.5がオフセットされたマップ」をMaxで正常に読み込む時は、、、

(u-0.5 , -v-0.5)のマップに対して(u+0.5 , -(-v)+0.5)もしくは(u+0.5 , -(-v-0.5)-0.5)すればよいのかな??
内部の計算式はよくわかりませんが、いずれにしても u はオフセットを0.5にしないといけないんじゃなかろうか?

だってこういう画像を
















こういう風にするとき















みなさんならどうしますか??

v は先に反転するかしないかでオフセットのプラスマイナスが逆転しますし、ホント一体どうなっているのかわかりません。


それとも、ZBrushって聖帝サウザーみたいなものなんですかねww?


-0.5だからって下や左にずれるって勝手に思い込んでる僕が良くないのかも・・・。
この辺理解するには時間がかかりそうです。 汗
ZBrushの内部座標を調べる必要がありそうですね。単に上下反転ではない気がしてきました。


んで、もしこのノードを使う場合は、ZBrushから出したマップはデフォルトで読みこんで、PSDで作ったマップはオフセットを0にしてvをフリップするのがいいと思います。(今のところ)

この辺詳しい方がいたら是非ご教示下さい!


話は戻り、ハイレゾのマップに差し替えてかつオフセットを0にしたものは・・・













上下反転の影響が出ていますね。
でもこうすると・・・













望んでいた結果になりました!

ちなみにVrayHDRIだと













若干エッジに違いがありますがほぼ一緒です。

っちゅー感じです。

もう一つ、レンダリング時間も検証したのでまた次回紹介します。

そして今日初めてわかったこと、
ZBrushではuvのデフォルトはそれぞれ-0.5オフセットされているということ・・・
知らなんだ~orz

0 件のコメント:

コメントを投稿