ノーマルマップ作成 xNormal v.s ZBrush3.5
http://unreal.rgr.jp/diary.cgi?no=51
ここで書いていたこと、結構間違いがありました。
まずCinema4DのGLSLプレビューでの検証法が間違っていたこと、またxNormalで生成していたノーマルマップも、設定を加えないと正常に働かないものでした。
Cinema4Dの法線と色の仕様は標準で(R:X / G:Y / B:Z)が基準になっている。ZBrushで出力するノーマルマップの基準は(R:X / G:-Y / B:Z)なのでGoZで出力した場合、マテリアルの法線の設定で「反転 Y(G/緑)」にチェックが自動的に入る。ちなみにMayaも(R:X / G:Y / B:Z)が基準。
ノーマルマップは色のRGBとXYZ関係が使用先のソフトと適応しているのかを確認する必要がある。
大体のゲームエンジンと3DS Maxは(R:X / G:-Y / B:Z)。
Gチャンネルが+Yか-Yなのかの違いだけで、作成済みのノーマルマップもPhotoshopやGIMPのトーンカーブ機能で緑のチャンネルだけ斜線を反転させれば簡単に+Yと-Yを切り替えて修正することも可能。
ZBrushはデフォルトで(R:X / G:-Y / B:Z)、対してxNormalは(R:X / G:Y / B:Z)になっている点に注意。
ただ、どちらもRGB各チャンネルの+/-設定を変更して出力可能。
結論では、ZBrushで生成するノーマルマップもそれなりに正常で、xNormalも上記の設定で生成すれば同じ内容のノーマルマップを作成でき、Cinema4Dでは反転設定をする必要があるということでした。
ただ、ZBrushとxNormalで作成したノーマルマップは微妙なズレがあり、やはりxNのほうが正確だと思う。
ZBrushは頂点がどのように移動したのかをノーマルマップ化し、
xNormalはローポリからハイポリへトレース処理することによってノーマルマップを作成する。