Unity性能优化篇(五) 遮挡剔除

Unity性能优化篇(五) 遮挡剔除

正常情况下,如果一个障碍物A挡住了后面的物体B,虽然我们看不见物体B,但是Unity仍然会消耗性能来渲染这个物体B。这样CPU和GPU就会有一部分性能白白浪费在渲染物体B身上。

如果想在一个障碍物挡住了后面的物体后,不渲染被挡住的物体,则可以使用遮挡剔除。

启用物体遮挡剔除的方法和步骤:

1.在物体的Static里勾选 (遮挡物体)Occluder Static 和 (可被遮挡物体)Occludee Static选项

注意勾选后物体不能进行移动旋转缩放等操作

2.创建遮挡区域

打开Occlusion Culling窗口。打开方法:Window——Rendering——Occlusion Culling——Bake。打开之后,选择Object选项卡,点击Occlusion Areas,点击Create New右侧的Occlusion Area。就会在场景自动创建一个Occlusion Area物体

通过物体上Occlusion Area的size属性去设置场景中的遮挡剔除范围

在Occlusion Culling——Bake里进行烘焙遮挡剔除范围(烘焙后才会生效, 每次修改场景后需要重新进行烘焙)

烘焙范围预览(范围越大 烘焙所需时间越长)

耐心等待烘焙进度完成…

烘焙完成后 点击Visualization选项卡。选择后

可以在Scene窗口看到遮挡剔除的效果。此时在Scene窗口可以看到三个选项。

①Camera Volumes。启用后,可以在Scene窗口看到黄色区域,当摄像机在这个黄色区域内,遮挡剔除才可能会生效,摄像机离开这个区域,则遮挡剔除就会失效。我们还可以看到灰线,这些灰线指示摄像机当前位置所对应的遮挡剔除数据中的单元格以及当前单元格中的细分。Bake选项卡Smallest Hole参数设置定义了单元格内细分的最小大小,它的值越小,每个单元格产生的细分越多且越小,从而使精度提高并且文件增大。

②Visibility Lines。启用后,我们会看到绿色的区域,它表示摄像机可以看到的范围。

③Portals。启用后,我们可以看到一些线,它们代表遮挡数据中单元格之间的连接。

烘焙完成 启动Profiler 查看Rendering里的渲染情况(效果不是一般的6, 没在摄像机范围内的物体都已经剔除了 减少了不必要的消耗)

最后拓展一下Occlusion Portal组件

作用是制作一个单纯的遮挡物(这个遮挡物可以动态)

不需要勾选 (遮挡物体)Occluder Static 和 (可被遮挡物体)Occludee Static选项

在物体上直接添加这个组件 并且取消Open勾选 才会生效

(此物体可在代码里修改位置信息)

相关推荐

笔记本显示已关闭无线功能,请问怎样打开?谢谢!
365bet体育投注官网

笔记本显示已关闭无线功能,请问怎样打开?谢谢!

📅 07-01 👁️ 5840
中国各种铁路列车的速度概览
365beatapp官方下载

中国各种铁路列车的速度概览

📅 06-30 👁️ 4309
彩条红土的故乡——隰县午城黄土地质公园
365bet提款维护

彩条红土的故乡——隰县午城黄土地质公园

📅 06-27 👁️ 5194
战斧复古怀旧游戏合集
365beatapp官方下载

战斧复古怀旧游戏合集

📅 07-02 👁️ 142
广东省深圳市宝安区沙井街道
365bet提款维护

广东省深圳市宝安区沙井街道

📅 07-22 👁️ 8843