チュートリアル / Psyop:Todd Akitaと歩むICEマスターへの道のり
第2回:ポリゴン描画と法線の関係性
- コラム
- チュートリアル
- データ
- モデリング
- 上級者
- 映画・TV
接続の順序と法線
ビューポートに表示された結果のポリゴンを確認すると法線が反転していることに気づくでしょう。(ディフォルトカメラからZ軸方向に見ている状態を想定しています。)これは、私たちの設定に間違いがあるためです。(今回、強調するためにわざと間違いました。)ポリゴンを時計回りに描画したことが問題で、実は反時計回りに描画するべきだったのです。そうすることで、結果の法線はカメラからの見た目で正しく表示されます。
ここでのシンプルな修正方法は、描画順を逆にすることです。つまり、[0,1,2] から [2,1,0]に変更を行います。
極論を言うと描画の方向がどの頂点からスタートするかよりも大事と言えます。このために、 [2,1,0]ではなく、 [0,2,1] や [1,0,2] を利用することで正しく適切な向きのポリゴンの描画が可能なのです。
メッシュの全ポリゴンが同じ方向を維持することは非常に重要なことです。さもないと、描画やレンダリング時にチラツキが発生したり、モデリング操作が理想的に行えなかったりする問題が発生する可能性があります。
ポリゴン間で頂点を共有する
続いて、一つ以上のポリゴンでメッシュを形成する方法を見ていきましょう。つまり、ポリゴンが頂点を共有する状況です。もし、ポリゴン境界で滑らかなシェーディングを望むのであれば、頂点を共有しながら適切な接続方向を維持する必要があります。比較のために、単一の正しく(反時計回り)描画された四角形ポリゴンを用います。(ICE_Topo.zipをダウンロード)
ここでは、インデックス番号 [0,1,2,3] をこれらの頂点の接続順として指定します。(配列の最後にはマイナスの値が指定してあります。)適切なポリゴン法線の向きを保つために反時計回りの描画順であることに注目してください。
しかし、この方法と異なるメッシュの生成を行いたいと思います。単一の四角形ポリゴンでは無く、2つの接続された反時計回りに描画された三角形を用いるのです。
これを実現するためには、2つの三角形間で共有されている頂点のインデックスを再利用が可能です。そうすることで共有されているポイント0と2を再利用することで4つのポジションから2つのポリゴンを形成出来るのです。
もし、間違えて反時計回りに頂点を描画した場合は、次のような結果になってしまうでしょう。
ご覧のとおり2番目(ピンク色でハイライトされた箇所)のポリゴンは時計回りに描画されています。法線が反転してフェイス間の連続性が失われてしまっています。通常、これらは望ましくありません。
次のステップは?
ここまで“Create Topo”ノードについて学んできました。2つの三角形からポリゴンを形成する以外にも便利な何かに応用できるはずです。次回以降のシリーズでは、ICEのトポロジーノードを利用してプリミティブグリッドをゼロから作成していくタスクをブレイクダウンして行こうと考えています。そして、ICEを用いてメッシュにUVやマテリアルを適用する方法も学んでいきたいと思います。