ロゴ メインコンテンツへ
RSSフィード
「デジタルコンテンツ制作」に関連する記事一覧

Maya ベクトル表示のバグ

2010/06/06
(この記事の文字数: 1027)

人などを作るときに左右のパーツを反転コピーで作ることがあると思います。

そのときに起こる頂点ベクトル表示のバグについて少し書こうと思います。

下図のように左足のメッシュがあるとします。緑色の線は面の法線です。



左足のメッシュを反転コピーすると次のようになります。

revNormal1.gif

一見、何の問題もなさそうに見えますが、ここで整合性が失われていることがあるのです。

図では面法線しか表示していませんが、ここで、頂点法線も面法線と同じ方向に向けてあります。

反転コピーしたメッシュの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に戻すと、法線が逆転していたことが法線表示で確認できます。

revNormal2.gif

あとは、法線をすべて反転してやれば正しい状態になります。

これで法線の表示はそんなに信用できるものではないということがお分かりいただけたと思います。

敢えてスケールが負であるときに法線表示と実際の法線のベクトルを真逆にするとも思えないので、これはただ単にAutodeskの開発者がそこまで加味していなかっただけのことなのでしょう。

すなわち、これはMayaのバグであると言えます。

この矛盾により、うっかり法線の向きが正しいと思ったままプロジェクトを進めていると後で問題になることがあるので、法線の向きには気をつけなければなりません。


  このエントリーをはてなブックマークに追加  

<<「デジタルコンテンツ制作」の記事一覧に戻る

<<「デジタルコンテンツ制作」の次の記事
「デジタルコンテンツ制作」の前の記事 >>

コメント(0 件)



コンテンツロード: 0.0073 sec
Copyright(C)2006-2024 puarts All Rights Reserved