基于可编程图形处理器的骨骼动画算法及其比较

2009-10-19 作者: 季卓尔 张景峤 来源: 万方数据

关键字: 骨骼动画 可编程图形处理器 计算机图形 蒙皮网格 统一 

骨骼动画相对于之前的动画方法具有占用空间小的优点,但是其代价是计算量的增加,从而导致绘制效率的降低。另一方面,近年来可编程图形处理器技术在计算机图形处理领域已得到广泛研究。因此,提出了基于可编程图形处理器实现骨骼动画的方法,采用了最先进的可编程处理管线。使用多种不同的方法在可编程图形处理器中实现了骨骼动画,并对其性能进行了分析与比较。该方法借助可编程图形处理器强大的计算能力,分担了骨骼动画中的顶点更新的计算任务,从而大大提升了骨骼动画的绘制效率。

  3、实验结果

  实验1是在P43.0的计算机上进行测试的,使用的显卡是ATI R300,内存512M。表1描述的是骨骼动画的程序不使用可编程GPU与使用可编程GPU时每秒所绘制帧数的对比。

  由表1可以看到,使用了GPU之后,绘制的效率相对于不使用GPU有了很大的提升。而且在某一个范围之内,绘制的人物数量越是多,得到的性能提升越是大。所以当计算量越大时,CPU越会成为提升计算效率的瓶颈,使用Shade越能够使性能得到提升。但是这种提升也不是无限制的,从上表的统计结果可以发现,当绘制的任务数超过某个量的时候,效率就不再提高了。这是因为此时GPU的性能已被用尽,效率的提升已达到极限。如果想要再提高效率,则只有使用更高性能的显卡。

  以上分析表明,使用GPU可以大大提高计算机系统计算的整体效率,并且这种提升在不超过一定极限的情况下,会随着计算量的变大而变大。

  实验2的硬件环境是Intel PentiumD925处理器,King StoneDDRII 6672G内存,nVidia8800GTS显卡。使用的软件环境是WindowsVISTA。使用的开发环境是MicrosoftVisualStudi02005,DirectX 10,DircctX SDK April 2007。使用的模型源自微软,有4000多个顶点与6 000多个三角面片。表2为在CPU利用率较低的情况下,各种基于GPU骨骼动画的运行效率,并以静止网格(即只是显示静态模型,但并不对其进行骨骼变换)的渲染为参照。表3为在CPU利用率较高的情况下,各种基于GPU骨骼动画的运行效率,并以静止网格的渲染为参照。

  表2的数据可以分为3个阶段来分析:①在渲染的模型数量较少时,由于GPU的运算能力比较强,所以GPU更新骨骼和预创建骨骼动画的方法相对于CPU更新骨骼的方法而言效率高一些。②当渲染模型的数量增加了一部分后,由于闲置的CPU帮助CPU更新骨骼方法分担GPU的一部分计算量,充分利用了CPU与GPU的资源,使得CPU更新骨骼方法获得了更高的效率。③当渲染模型的数量急剧增加后,由于CPU与GPU的负担均加重,闲置CPU分担GPU计算量的能力下降,GPU的计算能力也被大大消耗,所以出现了CPU更新骨骼方法与预创建骨骼动画方法效率相等的情况。

  从表3的数据中可以发现,当CPU高负载运行时.GPU更新骨骼和预创建骨骼动画方法的效果要比使用CPU更新骨骼动画的方法要好。

  综合以r.的数据可以发现,使用了GPU之后骨骼动画的效率有显著提高的。但骨骼动画效率的高低还取决于它所处的环境。只有最大限度的利用整个系统的资源才能得到最高的效率。

  4、结束语

  本文主要讨论了几种基于可编程GPU技术的骨骼动画口通过使用不同的可编程GPU技术,将骨骼动画不同部分的计算任务放到GPU中进行,使部分或者全部的计算量从CPU转移到GPU,从而将CPU从繁重的顶点变换,甚至骨骼更新的计算中解脱出来。本文在肯定了基于GPU的骨骼动画效率提升的同时,对不同的骨骼动画方法进行了分析,并指出骨骼动画效率的提升取决于其所处的环境。骨骼动画的价值体现在其所处的系统,比如游戏引擎。作为游戏引擎的一部分,骨骼动画方法的选择应该从引擎效率最大化的角度去考虑。单独考虑提升骨骼动画效率的意义并不是很大。

  随着GPU的不断发展,越来越多与图形相关的算法可以移植到GPU中去。不仅骨骼动画,同样。光照系统,粒子系统,LOD*阴影,模型简化都可以从GPU中受益良多。事实上很多与图形相关的算法都用到了GPU技术,不过在渲染管线不断改进与完善的今天,更多基于GPU的算法可以被提出。




<<首页 <上一页  1  2  3  下一页>  末页>>  
责任编辑:熊东旭