论文部分内容阅读
大规模深海海洋的仿真一直是计算机图形学领域最具挑战性的问题之一。近年来,海洋模拟不断应用于3D游戏、电影特效、广告设计等多种行业。海面的波动规律十分复杂,因此如何更逼真的展现海面的运动,成为了众多学者的重点研究方向。本文针对目前大规模深海海浪泡沫模拟的真实感和实时性较差的问题进行研究,具体内容如下。首先,构建动态海浪模型,利用Phillips频谱获取海浪频域的振幅值,再通过快速傅立叶逆变换(IFFT)计算海面网格顶点随时间变化的数值,从而将得到的频域振幅值转换到空间域的高度值,并对傅立叶系数进行优化,生成海面高度场;然后与水平面上的位移叠加,形成陡峭的波浪(choppy)。其次,采用无缝自适应LOD网格生成海面网格并进行拼接,实现无限海域的仿真;然后加载天空盒纹理;利用Snell定律模拟海面上空的光照情形,改进Fresnel系数使海面光照更加接近真实;引入Blinn-Phong光照模型对海面进行天空背景映射下的光照渲染;加入船只、岛屿等3D模型及粒子系统中的雨、雪场景。再次,使用平铺的小补丁构造深海海洋表面会导致海洋表面的泡沫有明显的位置上的重复性,影响海面的真实性,为此设计了一个动态阈值条件减少泡沫位置的重复性;而对于海浪泡沫因海浪的周期性运动产生的重复,提出建立动态纹理贴图库,并引入随机函数随机选取纹理,然后借助平滑埃尔米特差值模拟泡沫的光照强度,从而使泡沫在阳光下更加真实。最后,利用OSG开源图形库、Open GL高级着色语言GLSL设计实现了深海海浪及泡沫的仿真系统。实验表明,采用本文方法可以有效消除海浪泡沫的重复性,提高海面光照效果,增强海洋仿真的真实感。