Frustum Culling
剔除视锥体外的渲染物体,被剔除的物体不会发送给GPU渲染管线(这是 Unity 层面上的操作与 shader 中对顶点透视除法后进行的剔除不一样),Unity 默认启用这项技术。
Occlusion Culling
剔除被其他物体遮挡的,摄像机不可见(但在视锥体内)的渲染物体。使用 Occlusion Culling 需要手动设置,并在 Occlusion Culling Window 中通过 Bake 计算剔除数据。
https://docs.unity3d.com/Manual/OcclusionCulling.html
Occlusion Culling is different from Frustum Culling. Frustum Culling only disables the renderers for objects that are outside the camera’s viewing area but does not disable anything hidden from view by overdraw. Note that when you use Occlusion Culling you will still benefit from Frustum Culling.
Camera.layerCullDistances
For performance reasons, you might want to cull small objects earlier. For example, small rocks and debris could be made invisible at much smaller distance than large buildings. To do that, put small objects into a separate layer and set up per-layer cull distances using Camera.layerCullDistances script function.
https://docs.unity3d.com/ScriptReference/Camera-layerCullDistances.html
CullingGroup API
CullingGroup offers a way to integrate your own systems into Unity’s culling and LOD pipeline.The CullingGroup will calculate visibility based on frustum culling and static occlusion culling only. It will not take dynamic objects into account as potential occluders.
https://docs.unity3d.com/Manual/CullingGroupAPI.html