Cocos Creator:原生场景剔除

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

原生场景剔除

Creator 从 v3.4.0 开始支持原生场景剔除,包括仅限原生平台的八叉树场景剔除和遮挡查询剔除

八叉树场景剔除

通常,引擎会通过逐个检查模型的边界框是否在视锥体(相机的可见范围)中来剔除不在视锥(相机的可见范围)中的模型,这会较慢。如果启用了八叉树剔除,则八叉树可以快速剔除不在视锥中的模型。

此功能默认处于禁用状态,要启用此功能,请在“层次结构”面板中选择场景根节点“场景”,然后注意“检查器”面板中的“八叉树场景剔除”选项,然后选中“已启用”。

八叉树场景剔除

启用八叉树剔除后,整个世界的边界框(例如上图中的白色边框立方体)将显示在“场景”面板中。

八叉树场景剔除的属性描述如下:

财产描述
启用选中此选项以启用八叉树场景剔除,仅适用于本机平台。
世界迷你宝世界边界框的最小顶点坐标(不渲染边界框之外的对象)。
世界麦克斯普斯世界边界框的最大顶点坐标(不渲染边界框以外的对象)。
深度八叉树的深度,默认值为 8。如果场景较小,建议不要将此值设置得太大,否则可能会占用内存。

遮挡查询剔除

挡查询剔除默认处于关闭状态,如果处于打开状态,GFX 后端将通过图形 API 执行遮挡查询,如果对象被遮挡,则仅使用简化的边界框和材质来渲染对象以提高性能。

可以使用以下代码打开此功能:

director.root.pipeline.setOcclusionQueryEnabled(true);
注意:GLES 2.0 不支持遮挡查询剔除,并且某些 GLES 3.0 设备不支持没有扩展名的遮挡查询剔除。GL_EXT_occlusion_query_boolean

性能优化建议

  • 如果场景中的大部分对象都是可见的,建议不要启用八叉树场景剔除和遮挡查询剔除
  • 性能可能因设备而异,因此请在比较性能测试后决定是否打开相应的剔除功能。

3D建模学习工作室 翻译整理,转载请注明出处

上一篇:Cocos Creator:本机引擎内存泄漏检测系统 (mvrlink.com)

下一篇:Cocos Creator:本机性能探查器 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号