为优化性能建模角色

下面是一些设计人物模型的技巧,以提供 最佳渲染速度。

使用一个蒙皮网格渲染器

每个角色应该只使用一个蒙皮网格渲染器 (skinned mesh renderer)。Unity 使用可见性剔除和包围体更新优化动画,并且只有在使用一个动画组件和一个蒙皮网格渲染器结合时这些优化才会激活。在单一的网格使用两个蒙皮网格时,模型渲染的时间将花费约两倍的时间,并且使用多个网格很少能带来实际的好处。

使用尽可能少的材质

应该确保每个网格尽可能使用更少的材质数量。如果角色需要一种以上材质,唯一的原因是需要在不同的部位使用不同的渲染器(如:眼睛使用特殊渲染器)。但是,每个角色使用两种或三种材质在大部分情况下都已绰绰有余。

使用尽可能少的骨骼

一般台式机游戏每个骨骼层次通常使用 15-60 个骨骼。使用的骨骼越少,获得的性能更好。使用约 30 个骨骼即可在台式机平台上获得非常好的图画质量,移动平台上获得的的图画质量也不错。理想状态下移动设备的骨骼应保证在 30 以下,而台式机游戏也不能过多超过这一数目。

多边形数量

所使用的多边形数量取决于想要的质量以及游戏针对的平台。 对于移动设备来说,每个网格 300 - 1500 个多边形将带来很好的效果,而台式机平台的理想范围为 1500 – 4000。如果在任何特定时间游戏屏幕上都有大量角色,那么需要减少每个网格中的多边形数量。例如,Half Life 2 中的每个角色使用 2500-5000 个三角片。目前在 PS3 或 Xbox 360 上运行的 AAA 游戏中,角色通常有 5000-7000 个三角片。

正向运动 (Forward Kinematics) 和反向运动 (Inverse Kinematics) 保持分离

在导入动画时,模型的反向运动 (IK) 节点将烘焙成正向运动 (FK),因此,Unity 完全不需要 IK 节点。但是,如果将它们保存在模型,即使不会影响动画,也将导致 CPU 开销。可以按照自己的需要,在 Unity 或建模工具中删除多余的 IK 节点。理想状态下,应该在建模期间保存独立的 IK 和 FK 层级,以便在必要时轻松删除 IK 节点。

Page last updated: 2013-06-29