基于流计算的大范围动态海浪实时渲染方法
【专利摘要】本发明公开了一种在流处理器上实现大范围动态海浪高效实时渲染的方法。包括基于LOD(LevelofDetail)技术的新型网格模型,基于Gerstner模型实现海浪的动态模拟,一种凹凸纹理贴图的方法对较远处的海浪渲染实现加速,并利用动画凹凸纹理改善海浪渲染效果。本发明的新颖之处在于通过立方体纹理实现了对天空、太阳的反射效果,运用Phong光照模型实现了海浪的光照并实现了菲涅尔反射;采用动画纹理模拟了海浪中的泡沫,并实现了云在海面上投射的阴影等特殊效果。本方法可以在具有流处理器的计算机平台上对百公里级范围的海浪进行实时交互渲染,具有速度快,仿真度高,平台兼容性好的优点。
【专利说明】基于流计算的大范围动态海浪实时渲染方法
【技术领域】
[0001] 本发明与计算机图形学有关,随着GPU技术的快速进步,使得GPU的性能和可编程 能力得到大幅度提升,为图形学的发展提供了重要的硬件平台,本发明涉及一种基于流计 算平台GPU的大范围动态自然场景一海浪的实时渲染方法。
【背景技术】
[0002] 地球表面约70%的区域被海洋所覆盖,相比较其它自然景物的仿真,海浪场景的 绘制在飞行仿真、水面舰船仿真应用中显得更为重要.针对海浪渲染的研究,所用的方法 归结起来可以分为两大类:基于物理模型的方法和基于构造的方法,基于物理模型的方法 一般是从Navier-Stokes方程组着手,试图通过求解该方程组来实现对海浪的模拟;基于 构造的方法通过构造网格或基于粒子的方式,对海浪进行模拟。基于物理模型的方法更适 合于流体倾倒、喷泉等小范围、小规模的场景,或是用于电影、动画等不要求实时性的场合, 由于Navier-Stokes方程组的求解极为复杂,即便现代GPU的计算性能已达到TFL0PS量 级,仍然无法通过这类方法交互实时地实现大范围动态海浪的渲染.在实时交互性应用 中,在先方法[1](参见Fournier A, Reeves W T. A simple model of coean waves. ACM SIGGRAPH Computer Graphics, 1986, 20(4): 75-84; Peachey D R. Modeling waves and surf. ACM SIGGRAPH Computer Graphics, 1986,20(4): 65-74)基于几何模型的方法是 常用的构造方法,通过采用函数曲线等来模拟海浪的几何形状,该方法波形容易控制,速度 较快,其不足之处在于波形过于规则,真实感差,已经难以满足目前对海浪模拟真实性的要 求.在先方法[2](参见 Fr6chot J. Realistic simulation of ocean surface using wave spectra. Proceedings of the First International Conference on Computer Graphics Theory and Applications, Setubal: GRAPP, 2006: 76-83; Tessondorf J. Simulating ocean water. Computer Graphics Proceedings, Annual Conference Series,Los Angeles: ACM SIGGRAPH,2001,1-18;任鸿翔,尹勇,金一丞.大规模海 浪场景的真实感绘制.计算机辅助设计与图形学学报,2008,20(12): 1617-1622)基于 统计和谱的方法依据海洋统计和海洋观测的经验模型,采用多个正弦曲线或快速傅立叶变 换合成符合海浪谱分布的海浪。这类方法在现代GPU上也很容易实现,从而为实现实时交 互提供了可能。
【发明内容】
[0003] 现代流计算技术为基于GPU的海浪仿真提供了良好的平台和巨大的灵活性。本发 明建立一种新的统计和谱的方法,利用GPU实现大范围复杂场景下动态海浪的实时渲染, 解决大范围动态海浪实时渲染方法的难题. 本发明的大范围动态海浪实时渲染方法首先利用一种新的基于技术的网格模 型来模拟海平面,在高等级上采用基于GPU的Gerstner模型直接计算海浪的高度并 计算其法向量,在低等级的上计算海浪的凹凸纹理图;最后模拟海面的光照及一些特 殊效果,包括细碎海浪的模拟、海面对天空与太阳的反射效果、泡沫以及云层在海面上的阴 影等. 本发明的基本原理 一、 一种新的基于LOD同心圆网格模型,该模型借鉴射线同心圆网格模型和动态、静态 网格模型,在视点附近,采用两级细分圆形网格构成两级LOD,网格中顶点的间距由模拟的 海况确定,两级LOD以外的网格部分,采用同心圆网格,各同心圆半径和第i个同心圆上第 j个网格顶点的坐标(^幻的计算公式由公式(1)和(2)计算
【权利要求】
1. 一种在流处理器上实现大范围动态海浪高效实时渲染的方法,其特征在于所述方法 为: 一种新的基于LOD同心圆网格模型,该模型借鉴射线同心圆网格模型和动态、静态网 格模型,在视点附近,采用两级细分圆形网格构成两级LOD,网格中顶点的间距由模拟的海 况确定,两级LOD以外的网格部分,采用同心圆网格。
2. 各同心圆半径和第i个同心圆上第j个网格顶点的坐标 的计算公式由公式(1)和(2)计算
(1) (2) 式中,式为第i个同心圆的半径,只胃为海平面的可见距离。
3. -种逐顶点计算与凹凸纹理贴图相结合的方法模拟海浪,在细分圆形网格上采用逐 顶点计算,在同心圆网格上采用凹凸纹理贴图法,设^时刻平面上一点,海浪的运 动方程,三维空间中坐标i 5及其副法线、切线和法线分别由公式(3) ~ (7)计算
式中,木为第?个波的波向量,4为振幅,A为频率,與为相位。
4. 结合Fresnel反射与天空反射的海面光照计算,海平面对光线具有反射和折射两种 作用,海平面的颜色主要是这两作用的结果,对天空的反射通过环境立方体纹理的方式实 现,对海平面以上的景物可以采用平面反射法实现,将海平面以上的景物渲染成纹理,在 GPU中求取纹理投影坐标,从而实现反射效果,Fresnel反射是海平面光照计算的重要组成 部分,海平面光照的反射率i?和折射率Γ满足i? + T = l,反射率由公式(8)计算
(8) 折射主要是对海平面以下的景物进行的,其实现方法与实现反射的方法类似。
5.海泡沫与云的阴影计算,Choppy波导致了海平面产生泡沫,泡沫主要出现在波峰附 近,对泡沫的模拟可以增加模拟的真实感,本发明采用动画泡沫纹理对其方法进行了改进, 并可以交互实现泡沫的产生和消失,天空中的物体在太阳的照射下会在海平面投下阴影, 本发明通过阴影算法得到一张阴影纹理,对天空中的云生成的阴影进行模拟。
【文档编号】G06T15/00GK104143207SQ201310171982
【公开日】2014年11月12日 申请日期:2013年5月12日 优先权日:2013年5月12日
【发明者】张泽旭, 王纲 申请人:哈尔滨点石仿真科技有限公司