论文部分内容阅读
如何简化且有效地模拟火焰等自然景物,已经成为计算机图形学中最具有挑战性的研究方向之一。本文在认真分析和总结前人相关工作的基础上,结合游戏、电影等虚拟场景需求和应用,以友好的交互性、真实感和实时性为目标,提出一种基于粒子系统的风场中火焰的模拟算法。所做主要工作和研究成果如下:通过对火焰运动的分析,将火焰燃烧时所处复杂的运动场简化为四个简单的运动场:热浮力场、风场、漩涡场和重力场,提高了系统的实时性。考虑火焰受风力影响而产生紊乱的运动,建立了漩涡场模型,利用随机粒子在系统中作螺旋向上运动来模拟风场中的漩涡对火焰运动的影响,从而使火焰粒子的运动更加灵活,增加了火焰效果的真实感。在绘制火焰方面,采用多边形面片代替经典粒子系统中的点光源粒子来绘制粒子,从而大大减少了粒子系统中粒子的数量,提高了系统的实时性。另外,为了更真实的模拟火焰,采用纹理映射和视线跟踪技术来绘制粒子。碰撞检测是可视化系统中不可缺少的重要组成部分,本文采用粒子质点与平面或球面碰撞的原理,解决了火焰与球体碰撞的问题。最后,应用VC++和OpenGL语言设计了一个演示系统。为了保证系统的友好交互性,本文应用OpenGL高级界面技术生成用户所需的界面,使得用户更加方便、集中的控制系统的各种参数,并且在更改系统参数时就可以实时的观察到火焰的变化。实验证明,采用此算法模拟的火焰效果真实且在普通PC机上满足实时性的要求。