Unity 遮挡剔除

渲染时 摄像机视锥体会裁切一部分
其实还可以遮挡剔除
首先要设置下
阻挡别人的 Unity 遮挡剔除_第1张图片
被阻挡的 Unity 遮挡剔除_第2张图片
设置好以后 点一下bake
Unity 遮挡剔除_第3张图片
摄像机记得要设置这个 Occlusion Culling
在这里插入图片描述
Unity 遮挡剔除_第4张图片
右下第一个选项
Camera Volumes
相机进入这个范围内 才会触发 遮挡剔除

勾选上 就可以看到 剔除的效果 也就是说 被挡住的物体会消失不见
Occlusion culling

必须在
Unity 遮挡剔除_第5张图片
这个模式下 拖动摄像机才会隐藏被遮挡的物体
编辑器模式就可以预览 不需要运行模式
Unity 遮挡剔除_第6张图片

其实你会发现 触发遮挡剔除的范围太小了
有没有办法扩大呢

可以创建一个空对象 加上组件 Occlusion Area
然后调整大小
Unity 遮挡剔除_第7张图片
可以看到他是绿色的
设置完以后 记得bake一下
Unity 遮挡剔除_第8张图片
看 范围扩大了
摄像机碰撞到这个盒就会开启遮挡了
你也可以创建多个 Occlusion Area

最重要的一点 Smallest Occluder 一定要设置正确 不然不会触发阻挡
具体看一下描述

The size of the smallest object that will be used to hide other objects when doing occlusion culling. Any objects smaller than this size will never cause objects occluded by them to be culled. For example, with a value of 5, all objects that are higher or wider than 5 meters will cause hidden objects behind them to be culled (not rendered, saving render time). Picking a good value for this property is a balance between occlusion accuracy and storage size for the occlusion data.

最小物体的大小,在进行遮挡剔除时将用于隐藏其他物体。任何小于此大小的对象都不会导致被它们遮挡的对象被剔除。例如,值为5时,所有高于或大于5米的物体将导致隐藏在它们后面的物体被剔除(不渲染,节省渲染时间)。为这个属性选择一个好的值是遮挡精度和遮挡数据存储大小之间的平衡。

比如你的遮挡物大小是3
Smallest Occluder 要设置为1.5才行
设置为3就不会触发
具体原理不太清楚

你可能感兴趣的:(unity,游戏引擎)