具有丰富细节的大规模海洋场景半物理绘制方法

文档序号:8260304阅读:557来源:国知局
具有丰富细节的大规模海洋场景半物理绘制方法
【技术领域】
[0001] 本发明设计大规模流体场景绘制领域,尤其涉及一种具有丰富细节的大规模海洋 场景半物理绘制方法。
【背景技术】
[0002] 非物理的大规模海场景绘制方法基于海洋学家长期观测所得的经验模型而实现, 能够实时绘制真实感海洋场景。然而物理模拟的缺失使得它难以模拟浪花、船只尾迹等细 节现象。而基于物理的海洋场景绘制方法通过求解奈奎斯特方程真实模拟水体中每一小块 粒子的运动规律,从而得到真实、准确的物理现象。然而其极低的运算效率,只适合离线绘 制,难以应用于虚拟现实、游戏制作等领域。前人的方法难以同时满足"真实性"与"实时 性"两个性质。
[0003] 下面先介绍已有的大规模海洋场景绘制方法:
[0004] 1)基于非物理的模拟方法
[0005] 这类方法主要可以分为三类:空间域方法、频谱域方法和混合法。空间域方法的主 要思想是把水面建模为一个高度场,用一系列周期函数的叠加来计算高度场数据。频谱域 的方法也把水面建模成一个高度场,但是与空间域方法不同的是,这类方法使用经验观察 得到的水波频谱来计算高度场数据。空间域与频谱域的混合方法在用几何方法描述水面的 基础上增加了波列成分的细节,因此模拟效果也比较真实。但非物理的方法无法得到真实 的力学数据,因此无法产生诸如尾浪、船尾浪花飞溅等真实物理效果。
[0006] 2)基于物理的模拟方法
[0007] 这类方法主要可以细分成为三类:欧拉法、拉格朗日法和混合法。欧拉法是一种基 于网格的方法,它使用2D或者3D的网格,从流体空间中的各个固定点着手,分析每个固定 点上的流体速度、压强、密度等参数随时间和空间的变化。拉格朗日法是一种基于粒子的方 法,用一系列遵循物理规则的粒子来表示流体,把单个流体粒子作为研宄对象,研宄其运动 要素(位置、速度等)的变化过程,并通过综合各个流体粒子的运动来获得一定空间内所有 流体质点的运动规律。欧拉法与拉格朗日法混合的主要思想是对三维水体用欧拉网格法表 示,再用拉格朗日法进行小尺度的泡沫和浪花等效果的模拟。这些方法能够真实的模拟水 体的各种细节活动,但因为计算量大,无法到达实时绘制,因此难以应用于虚拟现实、游戏 等领域。

【发明内容】

[0008] 本发明的目的在于解决现大规模海场景绘制方法难以同时满足实时性与真实性 两方面的问题,提供一种具有丰富细节的大规模海洋场景半物理绘制方法。
[0009] 一种具有丰富细节的大规模海洋场景半物理绘制方法包括以下步骤:
[0010] 1)使用快速傅里叶变换方法求解海浪菲利普频谱空间域的高度和梯度数据;
[0011] 2)根据当前视点位置生成对应的海洋细节层次网格,把步骤1)求得的高度数据 赋予海洋网格高度信息;
[0012] 3)根据步骤1)求得的梯度数据求解海洋网格顶点的高斯曲率信息,进而求解海 洋泡沫纹理的透明度;
[0013] 4)通过求解二维波动方程,得到船只尾浪高度信息,叠加在步骤1)所得网格高度 数据;
[0014] 5)对船只外部框架进行体素化,计算船体受力,并更新船体位置;
[0015] 6)根据船体与海浪的位置关系,使用粒子系统生成浪花飞溅效果。
[0016] 所述步骤1)为:
[0017] (1)根据菲利普频谱经验公式,求得菲利普频谱值Ph:
[0018]
【主权项】
1. 一种具有丰富细节的大规模海洋场景半物理绘制方法,其特征在于包括以下步骤: 1) 使用快速傅里叶变换方法求解海浪菲利普频谱空间域的高度和梯度数据; 2) 根据当前视点位置生成对应的海洋细节层次网格,把步骤1)求得的高度数据赋予 海洋网格高度信息; 3) 根据步骤1)求得的梯度数据求解海洋网格顶点的高斯曲率信息,进而求解海洋泡 沫纹理的透明度; 4) 通过求解二维波动方程,得到船只尾浪高度信息,叠加在步骤1)所得网格高度数 据; 5) 对船只外部框架进行体素化,计算船体受力,并更新船体位置; 6) 根据船体与海浪的位置关系,使用粒子系统生成浪花飞溅效果。
2. 根据权利要求1所述的一种具有丰富细节的大规模海洋场景半物理绘制方法,其特 征在于所述步骤1)为: (1) 根据菲利普频谱经验公式,求得菲利普频谱值Ph:
其中L=V2/g,表示在连续的风速V下能够产生的最大的波浪,g表示重力加速度,免 表示风向,A是一个调节能量谱大小的常数j是一个二维向量(kx,kz),代表傅里叶分解 中每个谐波分量的角速度,其中kx= 2Jrn/Lx,kz= 2Jrm/Lz,n和m满足-N/2彡n<N/2 和-M/2彡m<M/2,这里L#L彦示要生成的波浪高度场所覆盖区域的两个方向的尺寸, 而N和M表示在这个两个方向上所生成的离散高度值的数目; (2) 根据Ph计算菲利普频谱系数fi(lt):
式中MPI2是满足标准正态分布的随机数; (3) 根据计算海面高度数据h(X,t):
其中X为海面每一点在XOZ平面上的位置坐标(x,t); (4) 根据海面高度数据h(X,t)求得梯度数据(Tx,Tz):
3. 根据权利要求1所述的一种具有丰富细节的大规模海洋场景半物理绘制方法,其特 征在于所述步骤2)为: (1) 初始化整个空间为4个顶点的矩形网格Gp网格顶点为xn,xi2,xi3,xi4; (2) 对所有矩形网格匕进行以下操作: (a)根据当前视点矩阵Mvie_int计算矩形网格G,顶点的屏幕空间坐标x'iJ= Mviewpoint*X;[j'jG{1,2,3,4}; (b) 根据x'u求得矩形网格Gi的屏幕空间占有面积Si; (c) 如果Si大于设定的面值阈值常数S,则将G1平均分为4个矩形网格,并依次对这4 个矩形网格进行操作(2),否则把步骤1)中求得的对应该矩形四个顶点的高度数据赋予该 矩形四个顶点。
4. 根据权利要求1所述的一种具有丰富细节的大规模海洋场景半物理绘制方法,其特 征在于所述步骤3)为: (1) 根据每一点在x轴方向上的梯度数据1;和z轴方向上的梯度数据Tz估算该点的 尚斯曲率Kgauss:
(2) 根据Kgauss计算每一点的泡沫纹理透明度ai:
5. 根据权利要求1所述的一种具有丰富细节的大规模海洋场景半物理绘制方法,其特 征在于所述步骤4)为: (1) 对船体尾部附近的64*64网格范围内的顶点,通过二维波动方程显式求解在当前 时间t的尾浪高度f(X,t):
其中v为船只速度, (2) 更新范围内每一点i的海面网格h(X,t): h' (X,t) =h(X,t)+f(X,t) 其中,h' (X,t)为更新后的每一点i海面网格。
6. 根据权利要求1所述的一种具有丰富细节的大规模海洋场景半物理绘制方法,其特 征在于所述步骤5)为: (1) 根据每个船体外表框架三角面片,计算三角面片重心位置x。,将x。作为每一体素的 位置; (2) 根据重心X。计算吃水深度:
(3) 根据hdMP计算波浪对体素x。的作用力F。:
其中《为\所在三角面片与XOZ平面夹角;B为用户自定义参数,代表船只吃水深度 变化的转化率; (4) 计算水下体素数量占总体体素数量百分比y,估算船只吃水体积Vin: vin=Vboat*y 其中VbMtS该船总体体积。并且计算浮力Ff (5) 根据牛顿第二定律,使用F。和F泔算船只的运动,并更新船体位置。
7.根据权利要求1所述的一种具有丰富细节的大规模海洋场景半物理绘制方法,其特 征在于所述步骤6)为: (1) 求解产生的粒子数量K:
其中C为设定好的速度对粒子数量影响常量 (2) 求解产生的粒子的平均速度il
其中D,E为设定好的吃水深度改变速度对粒子在垂直方向上和其他方向上的影响比 (3) 设定常量y作为方差,生成K个S作为均值,y作为方差的随机向量,作为产生粒 子的速度; (4) 用步骤(3)结果初始化粒子系统参数,根据牛顿第二定律让粒子系统随时间运动, 从而产生浪花飞溅效果。
【专利摘要】本发明公开了一种具有丰富细节的大规模海洋场景半物理绘制方法。其步骤为:1)求解海浪菲利普频谱空间域的高度和梯度数据;2)?根据当前视点位置生成对应的海洋细节层次网格,把求得的高度数据赋予海洋网格高度信息;3)根据求得的梯度数据求解海洋网格顶点的高斯曲率信息,求解海洋泡沫纹理的透明度;4)?通过求解二维波动方程,得到船只尾浪高度信息,叠加所得网格高度数据;5)?对船只外部框架进行体素化,计算船体受力,并更新船体位置;6)?根据船体与海浪的位置关系,使用粒子系统生成浪花飞溅效果。本发明解决了以往方法难以同时满足“真实性”与“实时性”两个需求。本方法能够实时的获得更加真实、具有丰富细节的大规模海洋场景。
【IPC分类】G06T17-30
【公开号】CN104574518
【申请号】CN201410826749
【发明人】王章野, 柳振东, 廖惟博
【申请人】浙江大学
【公开日】2015年4月29日
【申请日】2014年12月26日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1