Unity2018相机遮挡剔除总结(Occlusion Culling)

一、unity裁剪包括视锥裁剪和遮挡裁剪。

什么是视锥裁剪?

视锥裁剪就是禁用在相机观察区域之外的对象渲染,但不会禁用通过“过度绘制(overdraw)”隐藏的任何对象。(注意:当使用遮挡剔除时,仍然可以从视锥剔除中获益。)

(图一)

(图二)

什么是遮挡剔除?

遮挡剔除是使对象在被其它物体遮挡,没有被相机看到时关闭渲染功能。

 (图一)

 (图二)

二、步骤概览

1.创建场景

2.设置遮挡物(OccluderStatic)和被遮挡物(OccludeeStatic)的状态(static)

3.烘焙场景

1>首先把遮挡剔除创空打开(Window/Rendering/Occlusion Culling)

如果在Object页上,选择了有MeshRenderer组件的对象,可以修改相关的Static标记.

如果在Object页上,选择了有OcclusionArea组件的对象,可以修改相关的OcclusionArea属性.(1.在对象上添加OcclusionArea属性Component/Rendering/OcclusionArea。2.注意:当相机在遮挡区域之外时,将不应用遮挡剔除。设置遮挡区域以覆盖摄像机可能出现的位置是很重要的,但是过大的遮挡区域会在烘焙过程中产生成本。)

2>遮挡剔除-烘焙

遮挡剔除烘焙窗口有一个“设置默认参数(Set Default Parameters)”按钮,它允许重置烘焙值到Unity的默认值。

最小遮挡物(Smallest Occluder):在进行遮挡剔除时可用来隐藏其它对象的最小对象大小。任何小于此大小的对象都不会遮挡掉其它对象。

最小的洞(Smallest Hole):该值表示摄像机应该通过几何图形看到的最小间隙。

背面阈值(Backface Threshold):Unity的遮挡使用了一个数据大小的优化,通过测试背面来减少不必要的细节。默认值100是最合适的,从不删除背面的数据集。如果值为5,则会根据具有可见性背面的位置来大幅减少数据。通常情况下,有效的相机位置不会看到很多背面滴。

3>在底部的烘焙页是清除(Clear)和烘焙(Bake)按钮。单机烘焙按钮开始生成遮挡剔除数据。一旦生成数据,可以使用可视化(Visualization)选项卡预览和测试遮挡剔除。如果对结果不满意,单击清除按钮删除之前计算的数据,调整设置,然后再次烘焙。

 

 4.在遮挡完成后,如果没有看到任何东西被遮挡剔除在场景中,可以试着把场景中物体分成更小的部分,这样它们就可以完全被包含在单元格中。

 官网简述:https://blog.csdn.net/cangod/article/details/85164096?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1

原文地址:https://www.cnblogs.com/RainZZY/p/12691088.html