コンテンツにスキップ

オクルージョンカリング

プレイヤーの視界内に遮蔽物(例:巨大なビル、壁、etc...)などがある場合、その遮蔽物の向こう側は実際には表示されないため、描画する必要がありません。
該当する部分にオクルージョンカリングを設定することで見えない部分の描画を切り、最適化と軽量化を行うことができます。

設定手順

例として、ここでは遮蔽物としてCubeを用意します。 OcclusionCulling_1

このとき、Cube自体をプレイヤーに見せる必要がない場合はMeshRendererのチェックマークを外して透明にしてもかまいません。
OcclusionCulling_2

次に、Cubeの向こう側に遮蔽される対象としてSphereを設置します。 OcclusionCulling_3

CubeにはVKC Node Colliderを入れ、ColliderTypeをOcclusionに設定します。 OcclusionCulling_4

また、HEOWorldSettingOcclusion Cullingにチェックを入れ、ビルドします。 OcclusionCulling_5

カメラとSphereの間にOcclusion設定を行ったCubeが入ることで、Sphereが非表示になります。 この時、Cubeには当たり判定もカメラ非貫通判定もありません。

OcclusionCulling_Result

オクルージョンカリングのデバッグ方法

HEOWorldSettingでDebugModeをオンにしている場合、F1キーを2回押すことで画面上部に情報表示することができます。

表示された情報の1番上の行の「DrawCall(Field)」の隣の数字が現在表示されているオブジェクトのドローコール数で、OCがオクルージョンカリング設定がONになっている表示です。
この状態でオクルージョンカリングによるオブジェクトの表示/非表示をカメラ移動等で行うことで、ドローコール数の増減が確認できると思います。
ドローコール数に増減がある場合、オクルージョンカリングが正常に動作していることを表します。
OcclusionCulling_6

また、DebugModeをオンにしている場合、F4キーでオクルージョンカリングそのものの機能オンオフを切り替えることができます。

Tips

カメラ機能で視点を動かした場合でも、オクルージョンカリングの表示非表示が発生します。
カメラ位置によってオクルージョンカリングが動作せず、ドローコール数が増え重たくなってしまうといったことも起こりえるので、ドローコール数調整はオクルージョンカリングに頼りきらないようにしましょう。