航海模拟器场景中的海浪构网算法的制作方法

文档序号:6481014阅读:186来源:国知局
专利名称:航海模拟器场景中的海浪构网算法的制作方法
技术领域
本发明属于航海场景仿真技术领域,涉及一种航海模拟器场景中的海浪构网算法。
背景技术
航海模拟器是一种典型的人在回路中的仿真系统,航海模拟器的场景为模拟器操纵者提 供了海上训练任务的虚拟景象,其中显示的海浪一般约占整个场景的一半区域,因此海浪是 航海模拟器场景的重要组成部分,也是评价航海模拟器视景系统好坏的关键依据。
绘制海浪场景最关键的问题是海浪构网,即如何用多边形网格实时构建出海浪表面的几 何形状。海浪构网需要解决两个主要问题 一是海平面网格模型的建立,二是网格模型中网 格顶点高度的计算。海平面网格模型的网格间距和拓扑结构直接影响海浪绘制的实时性,而 网格顶点高度的计算直接关系海浪绘制的真实感,近年来,国内外学者对这两个问题进行了 一些研究。
在海平面网格模型的研究中尹勇[1]将海面划分为动态海面和静态海面,动态海面由以
视点位置为中心的^x^个网格组成,动态海面的外围区域为静态海面;Hinsinger等W提出 一种自适应的网格模型,该模型将屏幕上显示的海面区域细分成^x^个矩形网格单元,每 个单元按照逆向透视投影到静止的海平面上,从而获得海面上对应的不均匀分布的MxW个 网格位置;解翠[3对这种自适应的海平面网格模型进行了改进,提出了梯形网格模型; JohansonW提出了投影网格模型,在投影空间建立一个与视线垂直的均匀网格平面,再将该平 面投影到世界空间的海平面上。
在网格顶点高度的计算方面,随着图形处理器(Graphics Processing Unit, GPU)性能及可编 程能力的大幅度提高,基于GPU利用高度图来计算网格顶点高度逐渐成为研究的热点。高度 图是保存高度的纹理图,己提出的比较有代表性的高度图生成方法有JohansonW采用Perlin 噪声生成海面高度图;Kryachko^利用顶点纹理获取技术,将美工创建的多个灰度图进行叠 加和重复来生成高度图;Isidoro等[6]和Finch等[7]分别利用正弦波和Gerstner波叠加计算高度 图。
现有海浪构网算法主要存在以下不足-
1)梯形网格、投影网格等模型的提出,加快了海浪绘制的速度,但这些网格模型的拓扑 结构不合理,不能实现完全合理的层次细节(Levd of Detail, LOD),且模拟的海面容易出现走 样现象。
一2i利用现有的高度图生成方法绘制的海浪不能准确体现风对海浪的影响。风所引起的波浪是海面上分布最广的、对于船舶航行和海洋工程实际活动影响最大的波浪,在航海模拟器
的船舶模拟驾驶以及工程方案论证中,都要考虑风浪对船舶及码头等的影响,因此航海模拟
器的海浪绘制必须要考虑风的作用,也就是说海浪的大小应与风的大小相对应。
3)现有的海浪构网算法无法体现海浪与视点的相对运动。在船舶实际驾驶时,海浪与船
舶之间的相对运动是一个比较重要的航行参照,因此在航海模拟器中必须体现海浪与船舶(视
点"绑定"在船舶上)的相对运动。 参考文献尹勇.分布式航海仿真系统中视景实时生成算法的研究[D].大连:大连海事大学,2001. Hinsinger D, Neyret F, Cani M P. Interactive animation of ocean waves [C]〃 Proceedings of the 2002 ACM
SIGGRAPH / Eurographics Symposium on Computer Animation, San Antonio, 2002: 16卜166.解翠.基于Web的航海训练环境中关键技术的研究[D].大连:大连海事大学,2005. Johanson C. Real-time water rendering: introducing the projected grid concept [D]. Lund: Lund University, 2004. Kryachko Y. Using vertex texture displacement for realistic water rendering [M]. Pharr M. GPU Gems2. Boston: Addison Wesley, 2005: 283-294. Isidoro J, Vlachos A, Brennan C. Rendering ocean water [M]. Engel W F, ShaderX: Vertex and Pixel Shader Tips and Tricks, Minnesota: "Wordware Publishing, 2002: 347-356. Finch M. Effective water simulation from physical models [M], Fernando R. GPU Gems. Boston: Addison Wesley, 2004: 1-16,

发明内容
为了解决现有海浪构网算法的不足,针对航海模拟器的实际需求,本发明基于波浪谱理 论和GPU技术,设计了一种新的海浪构网算法,该算法在绘制的实时性及真实感上优于其他 算法,采用该算法可以科学、实时、逼真地绘制大规模海浪场景。
为了实现上述目的,本发明航海模拟器场景中的海浪构网算法如下
1) 设计同心圆网格模型模拟海平面
具体方法是过视点所在位置做海平面的垂线,得一交点,以该点为圆心,以递增的距 离为半径做多个同心圆,并对每个同心圆进行相同数量的等分,最后连接相邻同心圆的各等 分点组成三角形网格。
2) 采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图
海浪具有不规则性和不重复性,但其统计特性是稳定的,利用波浪谱以随机过程描述海 浪更为科学准确。比较常见的波浪谱有P-M谱、JONSWAP谱、Phillips谱等,其中Phillips 谱可较好体现风对海浪的影响。 '
由于波浪谱将实际波浪视为许许多多振幅不等、相位不同的正弦波动的叠加,而快速傅 里叶变换(Fast Fourier Transform, FFT)方法是计算正弦叠加值的有效方法,因此本发明在GPU 中采用FFT方法生成符合Phillips谱的海浪高度图。
43) 采样多次平铺的高度图获得网格顶点的高度
生成高度图时,FFT方法的采样区域通常小于同心圆网格模型所模拟的海平面范围,对 此可多次平铺高度图以覆盖同心圆网格的全部区域,然后再利用顶点纹理获取技术采样多次 平铺的高度图,得到网格顶点的高度,从而用网格构建出海浪表面的几何形状。
4) 实时计算网格顶点纹理坐标以实现海浪与视点的相对运动
同心圆网格模型以视点为中心,并随视点一起运动,为了体现海浪与视点的相对运动, 可以依据视点所在位置实吋计算网格顶点纹理坐标,并用得到的纹理坐标采样高度图,这样 同心圆网格虽随视点一起运动,但网格顶点的纹理坐标根据视点位置实时变化,实现了海浪 与视点的相对运动。
本发明的有益效果在于
1) 同心圆网格模型是一种按距离细分的网格模型,该模型对于从视点出发的任意方向, 所构网格的疏密变化程度一致,并随与视点距离的增加,网格的间距不断增大,保证了绘制 帧数的稳定和绘制的实时性,有效减轻了远处海面的走样。同心圆网格模型实现了完全合理 的LOD,体现了人眼的分辨率是有限的和均匀的这样一种基本原则。
2) 生成的高度图符合Phillips谱,能够较好地体现风对海浪的影响,也就是说绘制的海 浪大小与风的大小相对应,保证了绘制的科学性和真实感。
3) 通过实时计算网格顶点纹理坐标实现海浪与视点之间的相对运动。
因此,本发明所设计的海浪构网算法在绘制的实时性及真实感上优于其他算法,采用该 算法可以科学、实时、逼真地绘制大规模海浪场景。


图1是本发明的同心圆网格模型示意图。 图2是本发明的高度图的生成流程。 图3是本发明的高度图的平铺示意图。 图4是本发明的计算网格顶点纹理坐标的示意图。
具体实施例方式
下面结合附图对本发明做进一步详细地描述-1)同心圆网格模型的建立
同心圆网格模型的建立如图1所示,假定在三维世界坐标系X7Z中,y轴向上为正,模 拟的海平面平行于IZ平面,视点位置是(; A),海面可见距离为/ _。过视点位置作海平 面的垂线,得交点S;以S为圆心,以递增的距离为半径做W个同心圆,对第/(l&、A0个 同心圆从zVr/M弧度位置处开始进行A/等分,各等分点即为同心圆网格模型的网格顶点,顶点总数为MxiV个。各同心圆半径的计算公式为
"2,3,L7V (1)
其中i mm等于《,为同心圆最小半径;/(0为大于0的递增函数,可令 /。 = (! (及_—i 卿) ' (2)
设第/个同心圆上第/个网格顶点的坐标为( ,^,z》,其计算公式为 xy = 、 +《cos(2々/Af + ;n'/M)
yy = 0 其中/ = 1,2,A W; _/ = 1,2,A M (3)
zy = sz + i , sin(2;^/M + ;ri/M)
2) 海浪高度图的生成
(1) FFT方法生成高度图的相关理论
假定模拟的海平面平行于"平面,在^Z平面^x^采样区域内有MxW个采样点,时
间r时,采样点x-("^/iV,wA/M)的波高/KJC,0由位置及时间决定,其FFT表示式为
/z(x力=Z雖,O, (4)
其中* = (^,^)为二维矢量,其长度为A:, ^ =2朋/^,& =2;zm/Zz;"和w均为整数,
-AV2《"SW/2, -M/2^w^M/2; ^^力为波幅值,它决定了波浪的表面状况,波幅值可 用波浪谱函数表示为
,=〈,,《〉 (5) 考虑风影响的Phillips波浪谱表示式为
^-(6)
其中丄=卩2/《;g为重力加速度;r为风速;A为风向;^是常数。 初始波幅值可用高斯随机数来生成
《w=+("《WK^ (7)
其中《,《e
,是相互独立的高斯随机数。使用高斯分布的随机数生成的波幅值符合 海面波动的实验数据。
有了初始波幅值,再根据色散关系W(A)二V^,可以得到时间"寸的波幅值
辟/U)=+ %(_*)e-(8) 得到波幅值后,根据式4,通过FFT可得到采样点的波高/7(x力。
(2) 基于GPU的高度图生成
图2显示了基于GPU釆用FFT方法生成高度图的流程。首先在CPU中计算出《义A)、 分别以纹理形式保存;将这两个纹理与时间Z作为GPU的输入,在GPU中计算出波 幅值浙A,/);然后在GPU中依据式4进行FFT,得到/ (jc力,并保存为纹理,/z(jc力纹理即 为高度图。
3) 高度图的平铺和采样
6生成高度图时,FFT方法的采样区域通常小于同心圆网格模型所模拟的海平面范围,对 此可多次平铺高度图以覆盖同心圆网格的全部区域。图3是高度图的平铺示意图,实线圆为 同心圆网格模型的最大圆,虚线小方格代表高度图,对高度图进行/次平铺,/ = 2/ ,/^ , 这样就覆盖了面积为2i ^ x2i ,的方形区域。
平铺高度图覆盖同心圆网格的全部区域后,可利用顶点纹理获取技术采样多次平铺的高 度图,得到网格顶点的高度,从而用网格构建出了海浪表面的几何形状。
4)网格顶点纹理坐标的计算
同心圆网格模型以视点为中心,并随视点一起运动。在航海模拟器中,视点是"绑定" 在船舶驾驶台上的,这就意味着同心圆网格是随船舶一起运动的,因此绘制的海浪也是随船 舶一起运动的,海浪与船舶之间没有相对运动。在船舶实际驾驶时,海浪与船舶之间的相对 运动是一个比较重要的航行参照,因此在航海模拟器中有必要体现这一相对运动,以满足船 舶驾驶的实际需求,同时增强海浪场景的真实感。
计算同心圆网格顶点的高度需要根据顶点纹理坐标来采样高度图,因此可以考虑依据船 舶位置实时计算顶点纹理坐标,从而实现海浪与船舶的相对运动。如图4所示,设船舶的初 始位置为p。(;c。,y。^。); /为高度图的平铺次数。此时A点的纹理坐标为(//2,//2),假定船舶 航行一段时间后,到达了p,点,则A的纹理坐标(年O用下式计算 A = ; + (x]—、)
2 "A
Z z 、 z + (zi-zo):
2 " 2i 隨
有了同心圆网格中圆心的纹理坐标,根据模型的拓扑结构,可以计算出网格其他顶点的 纹理坐标。这样,虽然同心圆网格随船舶一起运动,但网格顶点的纹理坐标根据船舶位置实 时变化,实现了海浪与船舶的相对运动。
权利要求
1、航海模拟器场景中的海浪构网算法,其特征在于,该算法包括如下步骤1)设计同心圆网格模型模拟海平面;2)采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图;3)采样多次平铺的高度图获得网格顶点的高度;4)依据视点位置实时计算网格顶点纹理坐标,实现海浪与视点的相对运动。
2、 如权利要求l所述的航海模拟器场景中的海浪构网算法,其特征在于,所述步骤l) 的具体实现方法是过视点所在位置做海平面的垂线,得一交点,以该点为圆心,以递增的 距离为半径做多个同心圆,并对每个同心圆进行相同数量的等分,最后连接相邻同心圆的各 等分点组成三角形网格。
3、 如权利要求1所述的航海模拟器场景中的海浪构网算法,其特征在于,所述步骤3)的具体实现方法是多次平铺高度图以覆盖同心圆网格的全部区域,然后利用顶点纹理获取 技术采样多次平铺的高度图,得到网格顶点的高度,从而用网格构建出海浪表面的几何形状。
4、 如权利要求l所述的航海模拟器场景中的海浪构网算法,其特征在于,所述步骤4) 的具体实现方法是依据视点所在位置实时计算网格顶点的纹理坐标,并用得到的纹理坐标 采样高度图,这样同心圆网格虽随视点一起运动,但网格顶点的纹理坐标根据视点位置实时 变化,实现了海浪与视点的相对运动。
全文摘要
本发明属于航海场景仿真技术领域,涉及航海模拟器场景中的海浪构网算法。该方法是设计同心圆网格模型构建海平面,保证了海浪绘制的实时性;采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图;利用顶点纹理获取技术采样多次平铺的高度图,得到网格顶点的高度,从而用网格构建出了海浪表面的几何形状;依据视点位置实时计算网格顶点纹理坐标,实现了海浪与视点的相对运动。本发明的算法解决了现有海浪构网算法中不能实现完全合理的LOD、无法体现风对海浪的影响、无法实现海浪与视点的相对运动等问题,并在绘制的实时性及真实感上优于其他算法;采用本发明的海浪构网算法可以科学、实时、逼真地绘制大规模海浪场景。
文档编号G06T15/70GK101587594SQ200910012149
公开日2009年11月25日 申请日期2009年6月19日 优先权日2009年6月19日
发明者任俊生, 任鸿翔, 刘秀文, 孙霄峰, 勇 尹, 张新宇, 张秀凤, 翠 解, 金一丞 申请人:大连海事大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1