找回密码
 立即注册
查看: 5837|回复: 70

[常见问题] unity3d 性能优化之角色建模

[复制链接]
发表于 2013-10-14 11:06 | 显示全部楼层 |阅读模式
使用一个单一的Skinned Mesh Rendere

  您应该对于每个角色仅使用一个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结点。
unity3d 性能优化, 角色建模

发表于 2017-4-23 18:17 | 显示全部楼层
好帖就是要顶
发表于 2017-4-23 18:18 | 显示全部楼层
顶顶多好
发表于 2017-4-23 18:20 | 显示全部楼层
真心顶
发表于 2017-4-23 18:01 | 显示全部楼层
说的非常好
发表于 2017-4-23 17:51 | 显示全部楼层
不错不错
发表于 2017-6-20 11:44 | 显示全部楼层
好帖就是要顶
发表于 2017-6-20 12:10 | 显示全部楼层
顶顶多好
发表于 2017-6-20 11:58 | 显示全部楼层
真心顶
发表于 2017-6-20 12:39 | 显示全部楼层
难得一见的好帖
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-26 21:41 , Processed in 0.071271 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表