人などを作るときに左右のパーツを反転コピーで作ることがあると思います。
そのときに起こる頂点ベクトル表示のバグについて少し書こうと思います。
下図のように左足のメッシュがあるとします。緑色の線は面の法線です。
左足のメッシュを反転コピーすると次のようになります。
一見、何の問題もなさそうに見えますが、ここで整合性が失われていることがあるのです。
反転コピーしたメッシュのdisplayNormalで表示されている法線が向いている方向は、ある頂点では次のようになります。
0.379659 0.0858684 0.921133
これは反転後に向いているべき正しいベクトル方向です。
ここで次のコマンドを使って、実際の頂点ベクトルの方向を調べてみます。
polyNormalPerVertex -q -xyz [頂点名];
で実際の2つのオブジェクトの対応点の法線ベクトルを確認してみると次のようになります。
もとのメッシュ
-0.379659 0.0858684 0.921133
反転コピーしたメッシュ
-0.0865807 -0.088772 -0.992282
ここでおかしいことに気づくはずです。
そうです、反転コピーしたメッシュの実際の頂点ベクトルも
0.379659 0.0858684 0.921133
でなければならないのに、表示されている法線と、正反対の方向を向いているのです。
これは反転コピーした際に、親ノードのスケールに-1が入っていることが原因で起こっています。
すなわち、Freeze transformを適用して、スケール値を初期化すれば、表示と実際のベクトル方向の整合性が保たれている状態になります。
スケール値を1に戻すと、法線が逆転していたことが法線表示で確認できます。
あとは、法線をすべて反転してやれば正しい状態になります。
これで法線の表示はそんなに信用できるものではないということがお分かりいただけたと思います。
敢えてスケールが負であるときに法線表示と実際の法線のベクトルを真逆にするとも思えないので、これはただ単にAutodeskの開発者がそこまで加味していなかっただけのことなのでしょう。
すなわち、これはMayaのバグであると言えます。
この矛盾により、うっかり法線の向きが正しいと思ったままプロジェクトを進めていると後で問題になることがあるので、法線の向きには気をつけなければなりません。