天天看点

gpu instancing animation代替骨骼动画的做法

    最早是在Unity推出gpuinstancing后,马上有人做了一个顶点动画代替骨骼动画的方案,当时自己也测试了一下,红米2一千人可以跑60帧,确实非常不错。后来发现UWA群里也有人在讨论这个东西的做法,当时M神说可以用烘焙骨骼的方式代替烘焙顶点,这样子烘焙出来的贴图大小只和骨骼数相关。而小米超神也说是通过烘焙顶点,不过为了减少烘焙文件的大小,使用了类似RGBM的方式存储数据。

    我整合了主流的几种做法,做了一个插件。

    首先展示结果:

gpu instancing animation代替骨骼动画的做法

   场景中可见大概750个角色,batches只有7,去掉地面和天空盒,其实这么多人只有5个Batches.

   贴图大小:

gpu instancing animation代替骨骼动画的做法

  115帧的动画,4秒不到一点,128k,而且看到图中还有剩余,即使动画文件更大一些,依然可以用这张贴图放下。可能现在还看不出来它足够小,等后面和烘焙顶点的做法比较一下ÿ