论文部分内容阅读
随着计算机图形技术的不断发展,人们已经能够使用计算机实现“照片级”真实的虚拟环境。为了进一步提升虚拟环境的沉浸感,环境的可交互性成为现阶段的研究热点。随着物理模拟的大量引入,环境的可交互性得到了质的提升。然而物理计算的巨大运算量和虚拟环境的实时性要求又成了一对难以调和的矛盾,再加上大规模场景的广泛存在又加剧了这一矛盾。在流体模拟中,这种矛盾显得尤为突出。本文的目的是模拟范围极大的流体,例如湖泊、海洋等自然景观,并在真实感与效率之间找到一个平衡点,以满足游戏等实时的虚拟环境的需求。大尺度流体模拟是当前图形学的重要研究领域。本文展示流体模拟的几种主要模型,包括几何模型、物理模型、统计模型、柏林噪声等。讨论并实现了波浪模拟、大尺度的实现、双向流固耦合以及光照渲染。本文对这一课题的研究主要在以下三个方面:第一,流体表面自由波浪的模拟。使用柏林噪声来控制高度域上各点的位置,该方法连续变化的特点可以构造出平滑的波浪。最终实验证明该方法计算量较小,能满足实时条件,波浪非常接近风浪较小时的海面。第二,无限尺度与流固双向耦合的实现。使用投影的思想使波浪存在的矩形范围扩大到观察者的视野范围,并伴随观察者运动,从而营造出无边无际的假象。通过求解二维波方程来模拟流体的碰撞反映,并使用滑动叠加的方法来与投影状态下的自由波浪叠加;固体方面则采用把体积离散有限个顶点的方法来计算固体漂浮运动效果。实验中,通过把任意形状固体的体积离散到它的包围盒的顶点,大大简化了计算,同时也保证了良好的效果。第三,真实感绘制。使用GPU实现了水面的反射现象。水面的反射可以分为对环境的反射和对光源的反射。基于Phong光照模型的光源反射则能很好的表现阳光照射下的波光粼粼的效果。实验中为了满足各种软硬件环境的通用性采用了CPU来模拟流体运动以及流固耦合。为了保证效率不增加CPU的负担,使用GPU来处理渲染,试验结果显示渲染效果真实感强,并有效的降低了CPU占用率,提高了效率。最后,本文对实验中出现的问题和不足进行了分析,并提出了改进和完善的方向。