1.当场景中包含大量模型时,造成渲染效率的降低(即帧速率FPS的降低),采用遮挡剔除技术,可以使得那些被阻挡的物体不被渲染提高渲染效率
2.原理:在场景空间中创建一个遮挡区域,该遮挡区域是有单元格(Cell)组成;每个单元格是构成整个场景遮挡区域的一部分,这些单元格会把整个场景拆分成多个部分,当摄像机能够看到该单元格时,表示该单元格的物体会被渲染出来,其他的不去渲染
3.遮挡剔除步骤:
(1)场景
(2)除了主角,摄像机,直线光,地面。把层级视图中的所有游戏对象标记为“遮挡静态”(Occluder Static/Occludee Static)
(3)执行菜单命令“Windows”—>“OcclusionCulling”,弹出“遮挡剔除”面板,单击下方的“Back”按钮,开始烘焙
(4)单击“遮挡剔除”(Occlusion)窗口的“Visualizatior”,运行程序
4.若场景中存在大量的小“物件”,使用“层消隐距离”来优化场景
(1):原理:较远距离将小物件剔除,减少绘图调用的数量
(2):方法:将小物件放入一个单独的层(Separate Layer)中,并使用Camera.main.layerCullDistances函数设置层的消隐距离
(3)例如:void Start(){
Float[] distances=newfloat[32];
//这里定义的数组下标“8”表明第8层
distances[8]=10;
Camera.main.layerCullDistances=distances;
}
当摄像机距离这些小物件超过10m的时候,就不可见了
![](https://i-blog.csdnimg.cn/blog_migrate/0011211ec984777979552aaf827ff270.png)
![](https://i-blog.csdnimg.cn/blog_migrate/172649ba9c5210780996c5212dc356ed.png)
![](https://i-blog.csdnimg.cn/blog_migrate/43d8755f1485d2e3ab39e441cf503b75.png)
![](https://i-blog.csdnimg.cn/blog_migrate/130707bf6a9e25386f9023a16235b5c8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5d32394ad19438569ad06dba07464143.png)
![](https://i-blog.csdnimg.cn/blog_migrate/172649ba9c5210780996c5212dc356ed.png)