バックフェイスカリング

提供: MonoBook
2022年4月11日 (月) 04:34時点におけるAdministrator (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

バックフェイスカリング英語:backface culling)とは、3Dモデルの描画の前処理として、視点からは「見えないはずの裏向きのポリゴン」を削除する処理をいう。

「視点から見てポリゴンが表か裏かを判定する処理」は「力任せに描画処理を行う」より遥かに軽いのが一般的である。

なおバックフェイスカリングだけでは「表向きポリゴンの重なり」という無駄な描画処理までは排除できない。


裏表の判定方法[編集 | ソースを編集]

面法線を使う[編集 | ソースを編集]

視点方向ベクトルとポリゴンの面法線ベクトルという2つのベクトルのなす角が90度以上か否かで判定する。 ポリゴンが法線を持っている必要はあるが、その他の事前条件はほぼない。 コンピューターグラフィックスの教科書ではこの方法が紹介されていることが多い。

頂点の位置の出現順を使う[編集 | ソースを編集]

ポリゴンを構成する各頂点の位置の出現順が「時計回り」か「反時計回り」かで判定する。 3Dモデルを構成するポリゴンがこのルールに従って作られている必要がある。

Direct3DVulkanでは標準でこの方法が使われており、削除対象が「時計回り」か「反時計回り」か「何もしない」かを設定しておくだけで全自動でバックフェイスカリング処理されるので、一般的なプログラマーは計算式などは一切考えなくてもよい。