查看: 1377|回复: 2
打印 上一主题 下一主题

[经验分享] Unity3d 性能优化之角色建模

[复制链接]

711

主题

10

听众

5805

积分

高级设计师

Rank: 6Rank: 6

纳金币
2954
精华
3

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-5-26 03:08:05 |只看该作者 |倒序浏览
下面是一些提示,主要是如何设计角色模型来达到更好的渲染速度。   

使用一个单一的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结点。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-5-26 04:17:46 |只看该作者
great article!
回复

使用道具 举报

wucnj    

1

主题

1

听众

3160

积分

中级设计师

Rank: 5Rank: 5

纳金币
1065
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-5-26 10:18:51 |只看该作者
感谢分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-17 15:51 , Processed in 0.087936 second(s), 31 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部