论文部分内容阅读
在计算机图形学中,如何更加逼真地模拟自然景物一直是学者研究的热点问题。在某些领域,计算机模拟出来的自然景物发挥了极其重要的作用,节约了大量的经济资源,比方说虚拟现实,3D游戏,电影制作,军事仿真领域等。其中像桌子,椅子和楼房等有棱有角的规则性物体比较容易模拟出来,但是像自然界中烟雾,喷泉,水流和火焰等不规则物体则具有较高的模拟难度和较低的时效性,所以如何提升不规则物体模拟的真实感和实时性也成为了近年来图形学的研究热点和难点。基于此,本文选择了火焰作为模拟研究的不规则物体,并结合物理模型和GPU加速度等技术来模拟火焰。本文的具体研究内容如下:1、在对火焰物理性质进行深入分析的基础上,基于N-S(Navier-Stokes)方程本文建立了火焰的物理模型。但是按照一般的求解方法对模型求解比较困难,因此,本文采用的方法是使用Helmholtz-Hodge分解定理将N-S方程分解为四个部分:平流项,外力项,投影项和扩散项,然后对这四项分别求解。其中本文采用MacCormack方法对平流项进行了求解,简化了计算步骤,很好的解决了数值扩散问题,计算结果准确度高;采用Jacobi迭代法求解投射项的Poisson方程并将求解过程放在GPU上进行计算,提升了模拟效率,耗费的资源也少。最后通过实验对比分析,本文方法不仅可以利用GPU强大的计算性能来保证火焰的真实感,同时也能很好地提高计算效率。2、本文对火焰模拟的效果做了两项改进来提升火焰模拟的真实感和实时性:(1)结合Simplex噪声与物理学本文建立了一个风力模型。将火焰在模拟过程中受到的风力看作是一个风力模型,且当前时刻的风速是一个平均风速与随机数的和,通过噪声函数Simplex(x)产生该随机数并计算得到风速,生成风力模型。通过这个风力模型不断产生随机的风场对火焰进行随机扰动,火焰在移动燃烧的过程中会产生逆风的拖曳效果,符合火焰的物理特性,达到了更逼真的动态模拟效果。(2)在渲染过程中对光线投射算法进行改进,提出了基于GPU的光线投射算法。为了解决传统光线投射算法的计算量庞大等问题,本文算法通过优化光线投射算法流程,降低采样点累加次数,并充分利用GPU硬件加速技术来提升映射、计算和遍历火焰模型场景数据的速度,实现火焰的快速绘制。通过实验对比分析,本文的算法比传统光线投射算法模拟效率提升10%-14%,极大地提升火焰模拟的渲染效率,满足火焰模拟的实时性要求。最后,本文设计了一个火灾模拟系统。通过对系统的真实感和实时性的实验分析,验证了本文方法不仅可以得到更加真实的模拟效果,也能提升模拟的速度,并且较传统火焰模拟方法有进一步的提高。