咋样能同时渲染成千上万个角色呢?
角色一多就卡,Batches特别高,Draw Call问题多,因为角色带动画,CPU的蒙皮开销又很大。
一般用Animator来管理角色动画,角色是使用Skinned Mesh Renderer进行渲染
如果要做个军团动画的话...
有两个巨大的开销:
CPU处理动画
每个角色的Draw Call开销
(空场景,50个角色)如果是五百个,五千个呢。
之前用Shader可以做旗帜动画,那角色动画是不是可以用相应的原理进行转换呢。
看了一些解决方案,试着使用了一下GPU Animation来看看效果,
让GPU来处理动画,
SkinnedMeshRender替换成一般的Mesh Render,使用GPU Instancing来减少Draw Call。
(同一个角色,使用GPU Aniamtion后跑500个角色)
感觉还是很好的,具体在项目内使用的话,效果如何还有待研究。
只是提供一种解决方案。
推荐插件:GPU Animation Baker Basic
网友评论