论文部分内容阅读
随着计算机硬件水平的飞速发展,人们对于电脑游戏画面逼真度的要求越来越高。为了增加场景的逼真度,各种自然现象被加入到游戏场景中,比如:雾、雨、雪等等。虽然现在的游戏软件中已经出现了雪景,但只是简单地对静态雪景以及降雪过程进行渲染,对于雪花粒子和各种物体交互的模拟还未出现。研究雪花粒子与高速物体的交互,能够使我们更好地在游戏中模拟自然世界,将游戏画面的真实感推向一个新的台阶。雪花粒子与高速物体的交互非常复杂,本文将其分解成三个子模块:雪粒子生成模块、雪粒子动力学模块和高速物体顶部风场模块,分别加以研究。在雪粒子生成阶段,我们分析了经典的三角多边形雪花纹理生成算法,由其生成的雪花纹理图片逼真度不高,为了使生成的雪花纹理具有更真实的外观,运用二次贝塞尔曲线平滑雪花的边缘。在雪粒子动力学阶段,雪花粒子受到四个力作用:重力、浮力、摇曳力和向心力,结合牛顿第二定理,加上雪花粒子自身的物理属性,可以求解出雪花粒子的位置和速度。雪花粒子受到的摇曳力和风速相关,而摇曳力对雪花的运动路线有着决定性的影响,因此我们研究了高速物体顶部的风场,采用Navier-Stokes方程模拟风场,采用半拉格朗日法解决Navier-Stokes方程。模拟风场分为三个阶段:场景离散化,对流阶段和投影阶段,最后提出了一个简单的高速物体顶部的风场模型。最后将三个子模型整合在一起,形成一个雪粒子和高速物体交互的模型。对于每个模型中的部分参数设置,我们讨论了其可行值以及一些可能出现的意外情况。由于雪花粒子和高速物体交互的模拟需要雪的堆积模型和碰撞检测系统的支撑,因此我们额外讨论了一种实时渲染积雪的算法。算法首先计算一个积雪评估函数,然后计算出当前点积雪的颜色。碰撞检测系统的时间复杂度相当高,在层次包围盒的基础上对每个BSP叶子节点设置一个活跃性,可以加速碰撞检测的效率,并结合基于LDI的碰撞算法,能够快速进行碰撞检测。