多分、これが一番正しい修正方法。
元の投稿も何かの役に立つと思うので残しておきます。
NormalMapが反転する原因はベイクした環境はOpenGLかDirectXかによって異なるそうです。
これを3DViewの設定で変更することができます。
Materials>Default>Edit で3DViewの設定画面を開きます。
デフォルトではDirectXがTrueで有効になっています。
DirectX NormalをFalseにすることで3DViewで正しく見ることができます。
ボーンデジタルの方曰く、ZbrushからベイクしたNormalはOpenGLだそうで、
そうすると、MayaもOpenGLってことでいいのかな?
Normal編集に関係するノードを使用する場合にもNormalのフォーマットを指定する箇所があるので、メインで読み込んでいるNormalに合わせてOpenGLかDirectXかを選択しておいたほうがいいのかなと思います。
これはHeight Normal Blendノードですが、パラメーターの中でフォーマットの変更ができます。
これでひとまず、Normalの反転は解決できそうかな。
(古い投稿)
xNormalやMayaからベイクしたNormalmapをSDに持って行くと表示がおかしいと感じていたので調べてみました。
MayaでベイクしたNormalmapは以下の様なもの。
MayaでNormalを貼った結果は以下のとおり、正しく凸で表示されています。
同じテクスチャをSDに貼ったものは以下のとおり。
明らかに反転して凹んで見えます。
SubstanceDesignerはデフォルトでGチャンネルが反転してしまうようなので、
ベイクするソフトによってはNormalを反転させる必要があるようです。
で、その反転の仕方ですが、設定でできるかなと思ったのですがどうやらないみたいなので、
ノードをつないで修正します。
Normalmapの反転の仕方
反転の方法はすごく簡単。
Levelノードを追加し、Gチャンネルの下の▲を白と黒の位置を逆に入れ替えるだけです。
結果は以下の通り、正しく出るようになりました。
簡単なノードの接続で解決できますがちょっと面倒ですね。
UE4はSDと同じようにGチャンネルが反転するので都合がいいかもしれないですが、
個人的にはNormalmapのGチャンネルフリップは統一させたいので、
0 コメント:
コメントを投稿