カメラの視錐台外のジオメトリを除外するレンダリング最適化——処理負荷を削減。リアルタイムVFXとゲームエンジンの標準技術。
カメラはシーンの特定の領域しか見ていません。その奥、手前、または横の外側にあるものはすべてフレームにとって無関係です。フラスタムカリングはこの現実を利用します。エンジンはまず、カメラレンズによって定義されるピラミッド状の視覚領域(「フラスタム」)を計算し、その中にないすべてのジオメトリを破棄します。レンダリングされないものは計算時間も消費しません。
実際には、これは次のように機能します。各3Dオブジェクトまたはメッシュには、目に見えないバウンディングボックスが割り当てられます。エンジンはレンダリングパス中に、このボックスがフラスタムと重なっているかどうかをチェックします。完全に外側にある場合、オブジェクトはGPUに到達する前にレンダリングパイプラインから削除されます。これにより、頂点スループットだけでなく、シェーダー呼び出しやテクスチャ帯域幅も節約できます。数百のパーティクルシステム、ライト、または変形されたメッシュを持つ複雑なVFXシーンでは、これは安定した24fpsとリアルタイムの混沌との違いとなります。
VFXワークフローでは、これは常に発生します。破壊ショットで飛び散る破片がある場合、シーン全体を破片で満たしますが、カメラフレームに関連するのは前面半分だけです。すべてのパーティクル衝突を計算する代わりに、フラスタムカリングを使用して、表示されている破片のみをシミュレートさせることができます。群衆シーンも同様です。シーンに何百ものキャラクターリグを配置できます。視覚領域内にあるものだけがレンダリングおよびアニメートされます。ライトも同様です。フラスタムの外にある10個のライトは、シェーダー計算に含める必要はありません。
カメラのニアプレーンとファープレーンの間の境界は重要です。近すぎると、表示されているジオメトリを誤ってカリングしてしまう可能性があります。遠すぎると、効率の利点を失います。一部のエンジンでは、オブジェクトごとにカリング距離をより細かく制御できます。これは、特にパララックス背景や非常に遠くのディテールに役立ちます。カリングのオーバーヘッド自体も現実的です。非常に単純なシーンでは、フラスタムカリングはすべてをレンダリングするよりも遅くなる可能性があります。そのため、主に複雑なシーンでアクティブになるか、手動で制御できます。
他の最適化技術、例えばオクルージョンカリング(他のオブジェクトによって隠されているもの)やLODシステム(遠くのオブジェクトはディテールが少ない)と関連しています。しかし、フラスタムカリングは基本です。すべての最新のゲームエンジンで標準となっており、VFXレンダリングでは自動的に適用されます。