camera剔除主要是把不需要渲染的物体提前剔除 不送去gpu渲染 减少dc、渲染tris。消耗cpu来减轻gpu的压力。
主要用三种形式Frustum Culling(视锥体剔除)、Occlusion Culling(遮挡剔除)、layerCullDistances(远近剔除)。
1、Frustum Culling
视锥体剔除是用camera的frustum matrix剔除不该显示的物体,简单的说就是camera后面的物体不显示。unity默认开启。
2、Occusion Culling
遮挡剔除,顾名思义,就是把被遮住的物体剔除掉。unity里需设置遮挡标识(occluder flag)。
3、layerCullingDistance
远近剔除,就是把超过一定距离的物体剔除掉,设置方法:
float[] distances = new float[32];
distances[LayerMask.NameToLayer(“grass”)] = 50;
camera.layerCullSpherical = true;
camera.layerCullDistances = distances;
当物体离开视线超过50m后,物体就会消失。一般用来设置小的物体。