一种基于GPU的实时大规模群体动画渲染方法及系统

文档序号:35795383发布日期:2023-10-21 22:23阅读:64来源:国知局
一种基于GPU的实时大规模群体动画渲染方法及系统

本发明涉及大规模群体动画的渲染领域,具体涉及一种基于gpu的实时大规模群体动画渲染方法及系统。


背景技术:

1、群体动画最早的应用来自于电影动画的制作,主要用于制作大规模的场景和人物。群体动画被广泛应用在数字互娱、城市规划、航空航天等领域。本发明主要针对群体动画在游戏开发领域的实现。利用群体动画,游戏开发人员可以模拟大规模的场景和人物来让玩家更好地体验到复杂多彩地场景,并增加游戏的视觉冲击和带入感,同时群体动画技术的应用能更好的仿真人物行为,给人一种身临其境的感觉。然而群体动画是计算机图形学中一个具有挑战性的研究领域,其难点之一在于其大规模的资源计算,这对计算机的计算性能和内存使用都提出了极大挑战。以下介绍的便是针对群体动画渲染效率提升的相关技术。

2、网格简化,用于减少三维模型中顶点数和三角形数,对于一个非常复杂的模型而言,其顶点数和三角形数量不仅会降低渲染效率,而且会造成很多不必要的计算和内存浪费,对于大规模的群体而言也是如此。传统的网格简化算法大多依赖分层的数据结构不利于并发计算。

3、lod(level of detail),即层次细节,复杂的场景、地形或者模型在渲染时会根据实际情况呈现不同分辨率的图像。一般来说,lod选择是根据模型与相机的距离来决定的,这一过程发生在cpu中,一定程度上拖慢了渲染的速度。在群体动画渲染的过程中,为了快速明确每个模型的lod,需要在gpu中决定这些模型网格的顶点数量。

4、实例化技术,是指在不同位置使用不同参数对一个网格进行多次渲染,它非常有效地提升了整个渲染效率,但该技术合适静态网格的渲染,而不适合动画网格渲染。蒙皮实例化是实例化技术的扩展,它会将骨骼动画封装在纹理图中,在运行时根据模型的实例数据对其进行快速的蒙皮操作。该技术虽然可以高效率地渲染出动画网格,但其动画是在gpu端实现,直接导致了用户很难与这些动画中的模型产生复杂的交互操作。

5、以上技术虽然都能不同程度地提升了群体动画渲染的效率,但同时也存在一些技术问题需要进一步的改进,因此需要提出一套高性能的可复用的基于gpu的动画渲染管线,从而高效率地渲染大规模群体动画的方案。


技术实现思路

1、针对现有技术的不足,本发明提出一种基于gpu的实时大规模群体动画渲染方法及系统,本发明是通过以下技术方案来实现的:

2、本发明的第一方面:一种基于gpu的实时大规模群体动画渲染方法,该方法包括以下步骤:

3、(1)视锥体剔除:该模块根据模型的包围球和相机视锥体的空间位置关系,剔除掉包围球完全位于视锥体以外的模型;

4、(2)lod选择:根据模型在相机空间的分布为每一个模型选择恰当的网格细节,即如果模型距离相机越近,则模型网格的分辨率应当越高,反之越低;同时该模块还会适当调整每个模型最终的网格细节以适配gpu能容纳的最大顶点数量;

5、(3)网格重构:根据(2)选择的模型网格细节决定网格三角形数量,并重构模型的蒙皮网格,即重新计算模型蒙皮表面三角形的组成结构,从而简化网格;

6、(4)动画蒙皮:根据由cpu传入的模型当前动画姿势、gpu中预存的模型绑定动画姿势和蒙皮顶点权重信息、以及步骤(3)重构的蒙皮网格计算模型蒙皮;

7、(5)像素着色:根据(4)所得的蒙皮顶点计算最终模型表面的光照和纹理。

8、进一步地,所述步骤(1)中的模型实例数据在cpu中得到更新,其中模型的动画数据会打包成动画纹理、模型的全局空间坐标及其包围球信息会排列成数组,这些数据会送入gpu中作为动画渲染管线的原始输入。

9、进一步地,所述模型实例数据使用vbo缓存模型的顶点信息,使用ibo缓存三角形顶点索引信息,使用纹理格式存储模型绑定姿势、模型绑定姿势下的蒙皮顶点以及蒙皮顶点权重。

10、进一步地,所述的顶点剔除是通过依次判断各个包围球和相机视锥体六个面的空间位置关系,若包围球完全位于相机视锥体以外,则该模型所有顶点都被剔除,不再参与后续的渲染,否则保留模型的顶点信息,并进入渲染管线的下一个阶段。

11、进一步地,所述步骤(2)的lod选择决定模型最终的顶点数量,其过程由两个阶段组成,第一阶段会根据模型包围球在屏幕空间的面积、模型与相机之间的距离、模型包含几何图元的个数以及一个可控参数决定模型顶点数量占gpu能容纳的最大顶点数n的比重,以此计算具体顶点数量;第二阶段首先求和前一阶段计算得到的所有顶点数量,将结果与n比较,并适当调整部分模型的顶点数量,使得gpu的内存得到充分的利用。

12、进一步地,在渲染之前,模型网格会被预处理,预处理的结果用于网格顶点重建;模型经过lod选择阶段之后,其网格顶点数量被最终决定,而顶点数量可以确定网格的三角形数量,最终由网格预处理的结果来重建网格表面三角形的组成结构。

13、进一步地,所述步骤(4)中的动画蒙皮在gpu的像素渲染器中并发进行,在gpu中预存了模型绑定姿势信息、模型蒙皮顶点信息和相关蒙皮权重,再结合从cpu传入的模型当前动画姿势和模型全局坐标,利用蒙皮矩阵计算最终蒙皮顶点的位置和朝向。

14、进一步地,所述步骤(5)中的像素着色会利用gpu的实例化技术对同一模型的网格实例进行并发计算,最终将所有动画模型实例渲染成图像。

15、本发明的第二方面:一种基于gpu的实时大规模群体动画渲染系统,该系统包括以下模块:

16、视锥体剔除模块:该模块根据模型的包围球和相机视锥体的空间位置关系,剔除掉包围球完全位于视锥体以外的模型;

17、lod选择模块:根据模型在相机空间的分布为每一个模型选择恰当的网格细节,即如果模型距离相机越近,则模型网格的分辨率应当越高,反之越低;同时该模块还会适当调整每个模型最终的网格细节以适配gpu能容纳的最大顶点数量;

18、网格重构模块:根据选择的模型网格细节决定网格三角形数量,并重构模型的蒙皮网格,即重新计算模型蒙皮表面三角形的组成结构,从而简化网格;

19、动画蒙皮模块:根据由cpu传入的模型当前动画姿势、gpu中预存的模型绑定动画姿势和蒙皮顶点权重信息、以及重构的蒙皮网格计算模型蒙皮;

20、像素着色模块:根据所得的蒙皮顶点计算最终模型表面的光照和纹理。

21、本发明的有益效果如下:

22、该动画渲染管线系统可以高效率实现大规模群体动画的实时渲染。模型实例数据实际在cpu中得到更新,系统对模型动画骨骼计算不加干预,这使得用户可以与由模型实例组成的群体保持更复杂的交互逻辑;模型的绑定姿势、蒙皮顶点及其权重等静态数据会预存在gpu中,模型的实例数据会打包成数组结构并缓存在gpu的缓存对象中,所有数据流均组织成了gpu友好的数据结构,便于实现快速的并行运算;模型网格的lod选择既兼顾了细节逼真度要求又充分利用了gpu的内存,进一步提升了渲染质量;模型网格三角形的简化操作会提前进行并保存计算结果,使得运行时网格三角形可以实现快速的重构;蒙皮计算和像素着色都用到了gpu的实例化,极大提升了渲染效率,直接提高了动画渲染管线渲染群体动画的规模上限。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1