SkinnedMeshRender 应用中的坑

游戏中的换装需求

MMORPG游戏经常会给主角定义这样一些模块:手套、鞋子、衣服、裤子、武器、翅膀和帽子。

统计一下部件数量,总共7个部件,加上角色本体模型,就是8个部件了,如果再来个跟随对象,如狗狗:狗狗背包、狗狗项圈、狗狗眼镜、狗狗本体,这样又要加上4个部件了。在Unity引擎里,上面提到的1个部件就是1次渲染DrawCall,如果有穿插可能是2个DrawCall。

安装换装需求,现在主流的手机游戏通常要求20~30人同屏。如果美国角色8 + 5 = 13个部件,30人同屏,需要消耗约 30 * 13 = 390个DrawCall。对于通常运行得比较流畅的游戏,他们的DrawCall都在200以内,是一个比较健康的数字。如果安装换装需求,这样是很难让游戏流畅地运行的。关键问题是SkinnedMeshRender不能合并DrawCall的。

优化DrawCall是所有程序员必须要做的工作。一个游戏,60%以上的性能占用,都在渲染上面,而优化渲染,必须要控制DrawCall的数量。

 事实上SkinnedMeshRender是不能直接合并DrawCall的,Draw Call Batching

https://docs.unity3d.com/Manual/DrawCallBatching.html

Currently, only Mesh Renderers, Trail Renderers, Line Renderers, Particle Systemsand Sprite Renderersare batched. This means that skinned Meshes, Cloth, and other types of rendering components are not batched.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值