基于GPU粒子系统的大规模雨雪场景实时模拟
2012-05-04刘小玲杨红雨郭虎奇
刘小玲,杨红雨,2,郭虎奇
(1.四川大学 计算机学院,四川 成都610064;2.四川大学 视觉合成图形图像技术国防重点学科实验室,四川 成都610064)
0 引 言
近年来,图形处理器(graphics processing unit,GPU)的相关硬件技术得到了飞速的发展,图形硬件的运算速度和功能得到了很大程度的提高[1]。在处理能力上,现在的图形处理器每秒能同时处理几千万个三角形顶点,光栅化几十亿个像素;在控制功能上,原本的固定渲染管线中的顶点处理和像素处理可以被其可编程的顶点着色器(vertex shader)和像素着色器(fragmanet shader)取代。同时,GLSL(opengl shading laguage),HLSL(high level language)和Cg(C for graphics)等高级着色语言的出现,使程序开发人员能更加高效的编写顶点着色器和像素着色器上的代码[2]。充分利用GPU的强大的并行计算能力和可编程功能,可以使算法的执行速度得到很大的提高,为在大规模场景中进行实时雨雪绘制提供了硬件基础。
自1983年Reeves首次提出用粒子系统模拟不规则对象组成的物体以来,粒子系统得到了广泛的研究和应用[3-10]。在粒子系统中,粒子的产生和控制可以只遵循简单的物理动力学定理,也可同时引入随机过程,其形状,颜色等外部特征也可满足随机性,这使得粒子系统能很真实地模拟各种自然现象,如云,烟,火焰,爆炸和雨雪等。作为粒子系统的典型应用之一的雨雪自然现象,在粒子系统中也得到了逼真的模拟。
在传统的基于粒子系统的雨雪模拟[11-13]中,CPU负责大部分的工作,包括粒子的产生,粒子速度的控制,位置的更新等。在这种模式下,CPU将计算得到的雨雪粒子的最终位置数据通过系统总线传给GPU,并最终由GPU来完成粒子的绘制工作。……
