遮挡框
概览
遮挡框是一种特殊的几何体,用于提高性能。每个完全被遮挡框遮挡的物体都会被排除在渲染之外。部分被遮挡的物体则保持原样。
创建遮挡框
为对象创建遮挡框的步骤如下
创建一个方框对象。
将该对象命名为
occluder_box.使用 Dagor Dagorrat Material 2 着色器创建一个材质。
将着色器类别设置为
gi_black(为获得更好的可见度,建议选择与物体形成鲜明对比的材质颜色,如鲜红色)。
将材质分配给名为
occluder_box的对象。打开对象的属性,取消选中Renderable选项(这将防止以后出现潜在问题)。
在User Defined选项卡中,输入以下内容:
renderable:b=no cast_shadows:b=no occluder:b=yes collidable:b=no
User Defined Properties:
renderable:b=no- 禁止渲染对象。cast_shadows:b=no- 阻止对象投射阴影。occluder:b=yes- 将对象指定为遮挡器。collidable:b=no- 禁用碰撞生成。
Important
取消选中Dagor对象属性中的collidable选项并不能达到同样的效果!
要验证这一点,请在 Asset Viewer 中检查资产。如果碰撞数据中可见遮挡框,则说明设置不正确。 碰撞不应该包括一个
occluder_box节点。
将
occluder_box对象转换为Editable Poly或应用Edit Poly修改器。调整大小以适合要遮挡的对象。具体尺寸要求详见下文。
编辑包围盒
**occluder ** 这个名字很贴切,因为只有它的边界框才是最重要的,而与它的方向无关。因此,在创建遮挡框时应遵循以下规则:
遮挡框绝对不能超出对象的几何尺寸。
它应尽可能填满对象的内部空间,类似于 UV 贴图,但不应超出对象的边界。
不建议旋转遮挡盒。
下面是一个未旋转遮挡框的示例:
这是旋转后的效果:
不要将对象命名为
occluder_box以外的名称。应将遮蔽盒放置在
LOD00图层中。
Tip
如果需要删除遮挡框,请删除其多边形,同时保留所述对象及其属性。
验证遮挡框的设置
有几种方法可以验证遮挡框的设置是否正确:
在 Asset Viewer中,遮挡框显示为白色矩形。
如果不可见,请确保启用了适当的设置。如果遮挡框出现错位(如图所示),则需要在 3ds Max 中进行修正。
在游戏内测试时,您可以通过按下
F3键显示线框来观察遮挡框的运行情况,请参见 视频 以供参考。如果遮挡框后面的物体没有消失、消失过早、过晚或根本没有消失,请根据上述指南重新检查设置。如果遮挡框配置不正确,很可能会遇到类似 视频 1 和 视频 2中显示的问题。
配置良好的遮挡框示例
下面是几个正确设置遮挡框的示例图片。
显示遮挡框的命令
render.debug occlusion occluded- 显示遮挡物及其统计信息。render.debug occlusion occluded- 显示遮挡物体的边界框。
切换命令:
render.debug occlusion boxesrender.debug occlusion statsrender.debug occlusion occludedvrender.debug occlusion not_occluded
此外,您还可以使用
occlusion.enabled- 完全启用或禁用遮挡渲染。rendinst.check_occlusion- 启用或禁用渲染实例的遮挡。