オクルージョンカリングは、ゲームオブジェクトが他のオブジェクトに隠されていてビューに表示されない (隠されている) ときに、オブジェクトのレンダリング演算を行わない機能です。
すべてのフレームで、カメラはシーン内のレンダラーを調べ、描画する必要のないものを除外 (cull) するカリング操作を実行します。デフォルトでは、カメラは 錐台カリング を実行します。これにより、カメラの視錐台内におさまらないすべてのレンダラーが除外されます。ただし、錐台カリングは、レンダラーが他のゲームオブジェクトによって隠されているかどうかをチェックしないため、Unity は、最終フレームに表示されないレンダラーに対するレンダリング操作で CPU と GPU 時間を無駄に消費する可能性があります。オクルージョンカリングは、Unity がこれらの無駄な操作を実行するのを防ぎます。
オクルージョンカリングによってプロジェクトのランタイムパフォーマンスが向上するかどうかを判断するには、以下を考慮します。
オクルージョンカリングは、Unity エディターでシーンに関するデータを生成し、ランタイムにそのデータを使用してカメラが何を見ることができるかを決定します。データを生成するプロセスはベイクと呼ばれます。
オクルージョンカリングのデータをベイクする場合、Unity はシーンをセルに分割し、セル内のジオメトリと隣接するセルの可視性を説明するデータを生成します。Unity は可能な場合はセルをマージし、生成されたデータのサイズを削減します。ベイク処理を設定するには、Occlusion Culling ウィンドウ でパラメーターを変更し、シーンの Occlusion Areas を使用します。
ランタイムに、Unity はこのベイクしたデータをメモリにロードし、Occlusion Culling プロパティが有効な各カメラに対して、データに対するクエリを実行して、そのカメラが何を見ることができるかを決定します。オクルージョンカリングを有効にすると、カメラは錐台カリングとオクルージョンカリングの両方を実行します。
Unity は Umbra ライブラリを使用してオクルージョンカリングを行います。Umbra に関する詳しい情報は、その他の資料 を参照してください。