论文部分内容阅读
如何逼真的模拟自然景物一直是图形学中的一个热门研究课题。火焰、烟雾、云体等动态自然景物的模拟,在虚拟游戏场景、影视广告、航空航天模拟中有着广泛的应用。随着近年来研究的不断深入,各种针对不规则模糊自然景物的模拟算法不断涌现,模拟结果也越来越具有真实感。其中,粒子系统方法是迄今为止被认为模拟不规则模糊自然景物最为成功的一种算法。
本文深入讨论了基于粒子系统的三维火焰模拟方法,详细讨论了火焰模型中火焰粒子属性的初始化和火焰粒子的运动及渲染。针对使用经典粒子系统模拟火焰效率较低的问题,本文将动态纹理映射、球面公告板、LOD技术与粒子系统结合使用,对其渲染速度进行优化。一是采用四角面片代替点粒子的绘制方法,这样每一个面片可以代替几百个粒子,极大的节约了绘制粒子带来的系统开销,也避免了在粒子数量达到阈值时渲染速度受到限制;二是采用动态纹理技术,将一组二维纹理切片整合到一个三维纹理中,随机选择不同的纹理对面片进行映射,赋予粒子更多的变化,使渲染结果更加逼真,也避免了系统在渲染面片时大量调用绘制指令;三是采用了球面公告牌技术,使得二维景物跟随视点旋转产生三维的效果,也解决了在视点突然变换时会出现的裂隙和突现现象。四是采用LOD技术,根据视点的远近增减面片数量,提高了系统的运行速度。
其次,为了表现火焰的动态摇曳效果,本文引入了湍流场的概念,将对火焰产生作用的力场划分为大规模的平滑场和小范围的湍流场。其中重点讨论了随机确定位置的小范围湍流场对火焰建模效果的影响。为了使火焰产生与周围景物互动的效果,本文使用纹理映射实现了火焰的视觉残留效果,并且将火焰纹理作为偏移值对背景纹理进行渲染,产生视觉上的热折射效果。
最后,采用Visual Studio2005平台,Microsoft Visual C++2005编程,三维动画环境由OpenGL支持,在WindowsXP环境下开发了基于粒子系统的三维火焰模拟系统,模拟效果真实。