纳金网
标题:
Unity3D优化之获得最佳性能的角色建模
[打印本页]
作者:
yeu1233
时间:
2012-9-5 11:37
标题:
Unity3D优化之获得最佳性能的角色建模
下面是一些提示,主要是如何设计角色模型来达到更好的渲染速度。
使用一个单一的Skinned Mesh Renderer
您应该对于每个角色仅使用一个skinned mesh renderer。Unity使用可见性裁剪和包围体更新的方法来优化角色的运动,并且这些优化只有在您使用一个运动组件和一个skinned mesh renderer时才会被激活。如果您在一个网格的位置使用了两个蒙皮网格,那么该模型的渲染时间将变成原来的两倍。这样,这种做法与使用多个网格相比几乎没有任何实际的优势。
使用尽可能少的材质
您应该在每个网格上使用尽可能少的材质。您在一个角色上使用多个材质的唯一理由应该是你需要在不同的部分使用不同的着色器(比如在眼睛上使用特殊的着色器)。但是,在大多数情况下,一个角色2-3个材质就已经足够了。
使用尽可能少的骨骼
在桌面游戏中,一个骨骼结构大致使用15-60跟骨头。您使用的骨骼数越少,您将获得更好的性能。如果使用30根骨头的话,您可以在桌面平台上达到非常好的质量,同时在移动平台上也会得到相当好的质量。理论上来说,在移动平台上应该保持骨骼数在30根以下,而在桌面游戏中也不要超过30根太多。
多边形数量
您应该使用的多边形的数量取决于您所需要的质量和您的目标平台。对于移动设备,每个mesh拥有300-1500个多边形的话江湖达到比较好的效果,而对于桌面平台,这个理论范围大约为1500-4000。当然,如果游戏中任意时刻内屏幕上出现了大量的角色,那么您应该降低每个网格的面片数。比如,半条命2对于每个角色使用2500-5000个三角形面片。目前PS3或者Xbox360上的AAA级游戏中,每个角色大概拥有5000-7000个三角形面片。
保证前向运动结点和逆向运动结点分离
当运动导入时,一个模型的逆向运动(IK)结点会被烘焙到前向运动(FK)结点中,但实际上,Unity根本就不需要逆向运动结点。因此,如果它们保存在模型中,那么即使它们对运动没有任何影响也会占有一定的CPU开销。您可以根据您的需求在Unity或其他建模工具中删除多余的IK结点。理想情况下,您应该在建模时将IK和FK结点分离,这样在需要的时候就比较容易删除IK结点。
欢迎光临 纳金网 (http://old.narkii.com/club/)
Powered by Discuz! X2.5