以下是一些创建最佳性能模型的技巧。这些技巧有些适用于所有模型,有些仅适用于动画模型:
使用这些方法可能有助于提高模型的动画和渲染速度,但请注意,这些方法也可能会降低您要竭力实现的视觉逼真度和逼真效果。对于每种情况,并没有一个唯一的答案可以在更好的性能和视觉真实感之间取得完美平衡。必须根据角色和场景的复杂性以及所需的整体外观和逼真度来找到最佳的平衡。
您应该使用的多边形数量取决于您需要达到的视觉质量,以及您的目标平台。然而,以下两个相互冲突的事实都正确:
此外,还需要考虑其他元素也会争夺渲染资源。如果同时在屏幕上有很多游戏对象或地形对象,请考虑减少每个网格的多边形数量。
尽可能减少每个模型上的材质数量。只有在需要为角色的不同的部分使用不同着色器(例如,您可能为角色的眼睛使用特殊着色器)时,您才应该考虑使用多种材质。
对于动画角色模型,应仅使用单个带蒙皮的网格渲染器。Unity 的动画系统使用可见性剔除和包围体更新来优化动画。只有在模型上使用一个动画组件和一个带蒙皮的网格渲染器时,它才会激活这些优化。
如果使用两个带蒙皮的网格代替单个网格,模型的渲染时间大概会是单个网格的两倍,并且这样做很少能带来实际的意义。
一般来说,骨骼的数量越少,性能就越好。但有些时候,您需要创建具有大量骨骼的角色模型:例如,在需要大量可自定义的附件时。这些额外骨骼会增加构建大小,并且每个额外的骨骼都可能带来相对处理成本。例如,在通用模式下,已拥有 30 个骨骼的绑定上增加 15 个骨骼会让 Unity 再花费 50% 的时间来解析,这可能会影响解析所花费的时间。
请注意,对于通用和人形类型,您可以额外添加骨骼。如果未播放使用额外骨骼的动画,则处理成本应该可以忽略不计。如果连接不存在或为隐藏状态,此成本甚至会更低。
在导入动画时,Unity 会将模型的反向动力学 (IK) 节点将烘焙为正向动力学 (FK),因此 Unity 根本不需要 IK 节点。但是,如果这些节点留在了模型中,那么即使不影响动画,Unity 也会计算它们。可以在 Unity 或 3D 建模应用程序中删除冗余的 IK 节点。为了方便删除 IK 节点,应在建模时保留单独的 IK 和 FK 层级视图。