Unite 2017 | 基于Animation Instancing的大规模人群模拟

本文介绍Unity技术支持工程师金晓宇在Unite 2017上的分享,内容涉及基于Animation Instancing的大规模人群模拟技术。该技术通过GPU Instancing优化,避免骨骼动画计算开销,实现GPU计算蒙皮,降低CPU到GPU数据传输,适用于大规模群体动画场景,如战争、体育场观众等。但存在不支持blend tree和IK等问题。
摘要由CSDN通过智能技术生成

Unite 2017 | 基于Animation Instancing的大规模人群模拟

在Unite 2017的国内技术专场,Unity技术团队为参会者们带来了Unity引擎功能相关的技术分享。今天这篇文章,将由Unity技术支持工程师金晓宇为大家分享基于Animation Instancing的人群模拟技术,对于大型MMO游戏非常实用。


在实际开发中,可能经常会遇到类似需求:一个体育场中有大量的观众,或者有成百上千的僵尸在街道上游荡。对于这些类似的需求,如果采用传统的动画方式,CPU计算骨骼和蒙皮的压力会非常大。因为每一个角色都要有一个骨骼和蒙皮的计算过程,即使他们都播放的是同一个动画;除此之外,每个角色都至少有一个DrawCall,频繁的向GPU提交数据也为CPU带来了更多的压力。




上图是运用Animation Instancing的一个场景截图,这个场景中大约有30000个角色,每个角色有1~2千面,帧数可以稳定在60帧。Animation Instancing对于骨骼动画的限制较小,场景中的角色类型丰富,动画多样,非常适用于模拟大规模群体动画。


分析

本质上讲,Animation Instancing可以看做是GPU Instancing的扩展。因为他们的基本原理是相同的,只是在实现方法和细节上有所区别。我们都知道,GPU Instancing不支持带有骨骼动画的Mesh。这是因为带有骨骼动画的Mesh由于骨骼驱动蒙皮的原因其顶点数据(坐标)是不同的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值