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勾选 才会生效
(此物体可在代码里修改位置信息)
在这里插入图片描述

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值