「バックフェイスカリング」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
'''バックフェイスカリング'''([[英語]]:backface culling)とは、視点からは「見えないはずの裏向きの[[ポリゴン]]」を削除する処理をいう。
+
'''バックフェイスカリング'''([[英語]]:backface culling)とは、3Dモデルの描画の前処理として、視点からは「見えないはずの裏向きの[[ポリゴン]]」を削除する処理をいう。
  
 
「視点から見てポリゴンが表か裏かを判定する処理」は「力任せに描画処理を行う」より遥かに軽いのが一般的である。
 
「視点から見てポリゴンが表か裏かを判定する処理」は「力任せに描画処理を行う」より遥かに軽いのが一般的である。
  
 
なおバックフェイスカリングだけでは「表向きポリゴンの重なり」という無駄な描画処理までは排除できない。
 
なおバックフェイスカリングだけでは「表向きポリゴンの重なり」という無駄な描画処理までは排除できない。
 +
  
 
== 裏表の判定方法 ==
 
== 裏表の判定方法 ==
14行目: 15行目:
 
ポリゴンを構成する各頂点の位置の出現順が「時計回り」か「反時計回り」かで判定する。
 
ポリゴンを構成する各頂点の位置の出現順が「時計回り」か「反時計回り」かで判定する。
 
3Dモデルを構成するポリゴンがこのルールに従って作られている必要がある。
 
3Dモデルを構成するポリゴンがこのルールに従って作られている必要がある。
計算量は圧倒的に少ない。
+
 
[[Direct3D]]や[[Vulkan]]では標準でこの方法が使われている。
+
[[Direct3D]]や[[Vulkan]]では標準でこの方法が使われており、削除対象が「時計回り」か「反時計回り」か「何もしない」かを設定しておくだけで全自動でバックフェイスカリング処理されるので、一般的な[[プログラマー]]は計算式などは一切考えなくてもよい。
  
 
[[category: コンピューター・グラフィックス]]
 
[[category: コンピューター・グラフィックス]]

2022年4月11日 (月) 04:34時点における最新版

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

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

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


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

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

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

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

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

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