性能

场景规格指南

Galacean Engine 支持主流的 3D 建模软件(C4D、3ds Max、Maya、Blender)等导出 .fbx 文件。考虑到运行时的性能和兼容性问题,请美术注意 3D 场景规格:

模型

  • 三角面和顶点数量: 建议单个场景模型面数不要超过 10万面。在保证视觉效果的前提下尽量减少模型三角面数量和顶点数量,因为两者对 GPU 的性能损耗较大或显存占用均有一定影响,尤其是三角面的渲染性能有极大影响。
  • 模型合并: 美术需将不可独立移动的模型尽可能合并减少渲染批次,同时注意不要合并场景范围跨度过大的模型导致模型无法裁剪的问题。

材质

  • 材质合并: 尽可能合并材质,材质作为三维引擎的合并根基,一切引擎级渲染批次的合并前提都是使用相同材质,所以要保持材质对象尽可能的少。
  • 材质选择:
    • 材质模型选择需要根据美术风格尽量精简,比如直接把光照合并在漫反射贴图的的卡通风格模型可以直接选择 unlit 材质,而无需使用复杂的 PBR 材质模型。
    • 优先使用非透明材质,因为无论材质的透明混合还是透明裁剪模式相对于非透明材质都比较耗费性能。

贴图

贴图是占用显存资源的大头,贴图尺寸不可能盲目追求质量使用超大尺寸,需要评估实际项目贴图光栅化后的实际显示像素来使用接近的贴图尺寸,否则使用过大尺寸不仅得不到效果收益还浪费显存,尽量使用 2 的 N 次方贴图。在合理贴图尺寸下还可以继续使用 纹理压缩 优化显存占用。

节点

减少运行时空节点数量,空节点数量会占据一定内存消耗,而且可能会带来 变换 计算的潜在消耗,美术方一定要尽量删除空节点和合并碎节点。

动画

动画的制作方式上建议使用骨骼蒙皮动画,这是一种在三维引擎里兼顾效果和内存的一种动画技术,但由于骨骼动画的计算开销较大,尤其是在 JS 这种不擅长密集运算的语言下。所以美术在制作骨骼动画时应保证骨骼数量尽可能的少,有助于提升骨骼动画的性能和内存占用。一般控制在 25 块以下,可以保证在 IPhone 这种 GPU uniform 数量较少的机型中保证最佳性能。

UI

减少 UI 的 Alpha 部分浪费,比如 UI 使用近乎全屏但大部分透明的图片绘制会给 GPU 带来巨大的渲染负担,另外美术尽量自行合并 UI 贴图并高度利用贴图空间,因为依靠编辑器的算法合并仍可能产生一些浪费。

特效

特效贴图部分和 UI 同理,一定要减少贴图透明部分的尺寸的浪费,另外由于特效通常 OverDraw 非常严重,比如粒子,所以一定要在粒子等特效上尽量减少发射频率。

最后更新于 七月 11, 2024

这篇文档对您有帮助吗?