论文部分内容阅读
对自然现象中的流体进行模拟一直是计算机图形学中的一个研究热点和难点,火焰是生活中的重要组成部分,对火焰的模拟也可以广泛应用到游戏、影视、军事仿真等领域。由于火焰自身物理特性较为复杂,很难通过简单的几何体建模的方法进行模拟,因此本文采用基于物理的模拟方法,从火焰的物理特性出发对火焰进行模拟,同时针对目前真实感火焰的实时模拟难以实现的问题,提出一种物理模型和体绘制相结合的GPU加速火焰实时模拟方法。首先,在火焰建模方面,采用不可压缩NS(Navier-Stokes)方程组建立火焰模型,将火焰的三维模拟区域划分为大小相同的立方体网格,每个网格都包含火焰的速度、密度以及压力等物理属性,通过求解N-S方程得到火焰运动的速度场,真实地模拟出火焰的运动,进而得到火焰的物理模型;同时,为了提高模拟的速度,将N-S方程的求解过程放入GPU中进行计算,保证了模拟的实时性。然后,在火焰渲染方面,引入基于光线投射的直接体绘制方法,将火焰的物理模型作为体数据,将视点设为光线的起始点,光线从视平面的每一个像素出发,穿过体数据;通过计算每一条光线的方向,可以确定该光线在立方体中的进入点和离开点以及所穿过立方体的距离,并在该距离之内每隔一定的间距设置采样点,进行采样得到该采样点处的颜色值和不透明度,在绘制阶段,混合相同光线上体数据点的颜色值并输出;利用光线之间的并行性,将光线投射算法移植到GPU中进行计算可以加速火焰的渲染。最后,利用开放性图形接口OpenGL工具和Visual C++编程语言进行实现,模拟出了不同网格精度、不同燃烧材料的火焰,并通过添加风力、障碍物以及场景的应用,增加了模拟的真实感。实验结果表明,本文提出的火焰模拟方法能够实时地模拟出真实火焰的燃烧效果。