转换和优化实时三维对象以用于 Dynamics 365 Guides 或使用 Power Apps 所创建应用的混合现实组件的最佳做法
本主题将介绍转换和优化实时三维对象以用于 Dynamics 365 Guides 和使用 Power Apps 创建且包含混合现实组件的应用的最佳做法。
减少材质和表面
根据三维对象源以及您希望如何呈现内容,您可能希望使用基于物理的渲染 (PBR) 系统的全部功能。 PBR 系统允许通过创建纹理图来可视地表示颜色、粗糙度和凹凸,而不是在三维对象中具有多种不同的复杂材质和表面。
如果资源只需要存在,但不需要 PBR 系统提供的细节,则只应用一种颜色就可以显著提高性能。 这会省去额外的纹理数据和表面信息,如多种颜色、反射和凹凸。
A. 高性能单色三维对象,无 PBR 系统
B. 使用 PBR 系统的三维对象可呈现出更高质量
减少纹理
减小粗糙度图,以提高模型的性能。
A. 粗糙度图纹理为 2048 x 2048 的模型
B. 粗糙度图纹理为 1024 x 1024 的模型降低分辨率和纹理数量,以对内存消耗和文件大小产生最大影响。
根据视觉效果减少纹理。 例如,金属粗糙度图通常是基色和法线图的分辨率的一半,而没有可识别的质量降低。
JPG 压缩和 PNG 量化进一步减小了文件大小,但它们对加载模型时运行时所需的内存没有影响。
删除隐藏和未使用的数据
请务必删除表示三维对象所不需要的任何数据。 额外的节点、网格、材质和纹理可以快速添加。 例如,在以下三维对象中,删除任何隐藏的电机部件会减少三角形数量并简化层次结构,从而产生更高性能的三维对象。
线框和阴影模型在 Autodesk Inventor 中进行可视化。
减少三角形
三角形或顶点数量高可能会影响性能,尤其是在性能受限的设备上。
如果提前知道模型用途,则可以选择减少三角形。 重点减少具有高网格密度的不太重要的区域,以便在关键区域中提供更多细节。
精细的几何表面细节和材质颜色通常可以通过将它们烘焙成法线、颜色和 ORM(封闭、粗糙度和金属)图来替换,以减少大量的三角形。
A. 原生 CAD 三维对象
B. 具有法线图且减少三角形数量的多边形模型
C. 具有法线图的优化模型
减少绘制调用
绘制调用指每帧的图形指令数,即屏幕上的材质数。 减少或合并对象上的材质有助于减少绘制调用。
在此示例中,将多个纹理合并为单个纹理会将绘制调用从 22 个减少到 1 个。
最常见的运行时性能瓶颈通常可归因于大量的绘制调用。
使用多种材质创建纹理图集,并将网格合并在一起,以合并绘制调用。
降低层次结构复杂性
分组、亲子关系和大量节点(如空值、定位器、原始曲线、网格和接点)可能导致运行时性能不佳。
简化层次结构,删除不必要的节点,并在可能的情况下组合网格。
组合网格以减少绘制调用。 在 Autodesk 3DS Max 中进行可视化。
A. 原始层次结构
B. 优化的层次结构glTF 将为每个材质和图集材质创建一个网格,以减少节点数和绘制调用。
增加几何面之间的距离
当几何面是共面或几乎共面时可能发生闪烁,并且当模型在应用程序中被制作成动画或从一个位置移动到另一个位置时,这种情况尤其普遍。 这意味着几何面完全重叠,导致所谓的深度冲突。
两个形状几乎重叠,导致深度冲突效果。
在大多数情况下,少量增加几何面之间的距离可以解决闪烁问题。
翻转反面法线
反面法线可能导致模型阴影不正确。
翻转阴影不正确的面的法线,以解决渲染问题。
面法线在 Blender 中进行可视化。
A. 法线翻转的三维对象
B. 法线固定的三维对象
存在冲突的切线基础
存在冲突的切线基础可能会导致法线图反转。
在 Autodesk Maya 中可视化的切线基础。
A. 使用具有法线翻转螺旋的三维对象处理成的法线图
B. 用翻转的法线对象处理的可视化结果如果您不使用模型导出切线,glTF 和实时渲染器将采用右手。
如果要在左手设置中处理切线空间法线图,请导出带切线的模型。 或者,您可以反转法线图的绿色渠道(Y 轴)。