CN101587594B - 航海模拟器场景中的海浪构网方法 - Google Patents
航海模拟器场景中的海浪构网方法 Download PDFInfo
- Publication number
- CN101587594B CN101587594B CN2009100121490A CN200910012149A CN101587594B CN 101587594 B CN101587594 B CN 101587594B CN 2009100121490 A CN2009100121490 A CN 2009100121490A CN 200910012149 A CN200910012149 A CN 200910012149A CN 101587594 B CN101587594 B CN 101587594B
- Authority
- CN
- China
- Prior art keywords
- wave
- grid
- height
- viewpoint
- concentric circles
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明属于航海场景仿真技术领域,涉及航海模拟器场景中的海浪构网算法。该方法是:设计同心圆网格模型构建海平面,保证了海浪绘制的实时性;采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图;利用顶点纹理获取技术采样多次平铺的高度图,得到网格顶点的高度,从而用网格构建出了海浪表面的几何形状;依据视点位置实时计算网格顶点纹理坐标,实现了海浪与视点的相对运动。本发明的算法解决了现有海浪构网算法中不能实现完全合理的LOD、无法体现风对海浪的影响、无法实现海浪与视点的相对运动等问题,并在绘制的实时性及真实感上优于其他算法;采用本发明的海浪构网算法可以科学、实时、逼真地绘制大规模海浪场景。
Description
技术领域
本发明属于航海场景仿真技术领域,涉及一种航海模拟器场景中的海浪构网方法。
背景技术
航海模拟器是一种典型的人在回路中的仿真系统,航海模拟器的场景为模拟器操纵者提供了海上训练任务的虚拟景象,其中显示的海浪一般约占整个场景的一半区域,因此海浪是航海模拟器场景的重要组成部分,也是评价航海模拟器视景系统好坏的关键依据。
绘制海浪场景最关键的问题是海浪构网,即如何用多边形网格实时构建出海浪表面的几何形状。海浪构网需要解决两个主要问题:一是海平面网格模型的建立,二是网格模型中网格顶点高度的计算。海平面网格模型的网格间距和拓扑结构直接影响海浪绘制的实时性,而网格顶点高度的计算直接关系海浪绘制的真实感,近年来,国内外学者对这两个问题进行了一些研究。
在海平面网格模型的研究中:尹勇[1]将海面划分为动态海面和静态海面,动态海面由以视点位置为中心的M×N个网格组成,动态海面的外围区域为静态海面;Hinsinger等[2]提出一种自适应的网格模型,该模型将屏幕上显示的海面区域细分成M×N个矩形网格单元,每个单元按照逆向透视投影到静止的海平面上,从而获得海面上对应的不均匀分布的M×N个网格位置;解翠[3]对这种自适应的海平面网格模型进行了改进,提出了梯形网格模型;Johanson[4]提出了投影网格模型,在投影空间建立一个与视线垂直的均匀网格平面,再将该平面投影到世界空间的海平面上。
在网格顶点高度的计算方面,随着图形处理器(Graphics Processing Unit,GPU)性能及可编程能力的大幅度提高,基于GPU利用高度图来计算网格顶点高度逐渐成为研究的热点。高度图是保存高度的纹理图,已提出的比较有代表性的高度图生成方法有:Johanson[4]采用Perlin噪声生成海面高度图;Kryachko[5]利用顶点纹理获取技术,将美工创建的多个灰度图进行叠加和重复来生成高度图;Isidoro等[6]和Finch等[7]分别利用正弦波和Gerstner波叠加计算高度图。
现有海浪构网方法主要存在以下不足:
1)梯形网格、投影网格等模型的提出,加快了海浪绘制的速度,但这些网格模型的拓扑结构不合理,不能实现完全合理的层次细节(Level of Detail,LOD),且模拟的海面容易出现走样现象。
2)利用现有的高度图生成方法绘制的海浪不能准确体现风对海浪的影响。风所引起的波浪是海面上分布最广的、对于船舶航行和海洋工程实际活动影响最大的波浪,在航海模拟器的船舶模拟驾驶以及工程方案论证中,都要考虑风浪对船舶及码头等的影响,因此航海模拟器的海浪绘制必须要考虑风的作用,也就是说海浪的大小应与风的大小相对应。
3)现有的海浪构网方法无法体现海浪与视点的相对运动。在船舶实际驾驶时,海浪与船舶之间的相对运动是一个比较重要的航行参照,因此在航海模拟器中必须体现海浪与船舶(视点“绑定”在船舶上)的相对运动。
参考文献:
[1]尹勇.分布式航海仿真系统中视景实时生成算法的研究[D].大连:大连海事大学,2001.
[2]Hinsinger D,Neyret F,Cani M P.Interactive animation of ocean waves[C]// Proceedings of the 2002 ACMSIGGRAPH/Eurographics Symposium on Computer Animation,San Antonio,2002:161-166.
[3]解翠.基于Web的航海训练环境中关键技术的研究[D].大连:大连海事大学,2005.
[4]Johanson C.Real-time water rendering:introducing the projected grid concept[D].Lund:Lund University,2004.
[5]Kryachko Y.Using vertex texture displacement for realistic water rendering[M].Pharr M.GPU Gems2.Boston:Addison Wesley,2005:283-294.
[6]Isidoro J,Vlachos A,Brennan C.Rendering ocean water[M].Engel W F.ShaderX:Vertex and Pixel ShaderTips and Tricks,Minnesota:Wordware Publishing,2002:347-356.
[7]Finch M.Effective water simulation from physical models[M].Fernando R.GPU Gems.Boston:AddisonWesley,2004:1-16.
发明内容
为了解决现有海浪构网方法的不足,针对航海模拟器的实际需求,本发明基于波浪谱理论和GPU技术,设计了一种新的海浪构网方法,该方法在绘制的实时性及真实感上优于其他方法,采用该方法可以科学、实时、逼真地绘制大规模海浪场景。
为了实现上述目的,本发明航海模拟器场景中的海浪构网方法如下:
1)设计同心圆网格模型模拟海平面
具体方法是:过视点所在位置做海平面的垂线,得一交点,以该点为圆心,以递增的距离为半径做多个同心圆,并对每个同心圆进行相同数量的等分,最后连接相邻同心圆的各等分点组成三角形网格。
2)采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图
海浪具有不规则性和不重复性,但其统计特性是稳定的,利用波浪谱以随机过程描述海浪更为科学准确。比较常见的波浪谱有P-M谱、JONSWAP谱、Phillips谱等,其中Phillips谱可较好体现风对海浪的影响。
由于波浪谱将实际波浪视为许许多多振幅不等、相位不同的正弦波动的叠加,而快速傅里叶变换(Fast Fourier Transform,FFT)方法是计算正弦叠加值的有效方法,因此本发明在GPU中采用FFT方法生成符合Phillips谱的海浪高度图。
3)采样多次平铺的高度图获得网格顶点的高度
生成高度图时,FFT方法的采样区域通常小于同心圆网格模型所模拟的海平面范围,对此可多次平铺高度图以覆盖同心圆网格的全部区域,然后再利用顶点纹理获取技术采样多次平铺的高度图,得到网格顶点的高度,从而用网格构建出海浪表面的几何形状。
4)实时计算网格顶点纹理坐标以实现海浪与视点的相对运动
同心圆网格模型以视点为中心,并随视点一起运动,为了体现海浪与视点的相对运动,可以依据视点所在位置实时计算网格顶点纹理坐标,并用得到的纹理坐标采样高度图,这样同心圆网格虽随视点一起运动,但网格顶点的纹理坐标根据视点位置实时变化,实现了海浪与视点的相对运动。
本发明的有益效果在于:
1)同心圆网格模型是一种按距离细分的网格模型,该模型对于从视点出发的任意方向,所构网格的疏密变化程度一致,并随与视点距离的增加,网格的间距不断增大,保证了绘制帧数的稳定和绘制的实时性,有效减轻了远处海面的走样。同心圆网格模型实现了完全合理的LOD,体现了人眼的分辨率是有限的和均匀的这样一种基本原则。
2)生成的高度图符合Phillips谱,能够较好地体现风对海浪的影响,也就是说绘制的海浪大小与风的大小相对应,保证了绘制的科学性和真实感。
3)通过实时计算网格顶点纹理坐标实现海浪与视点之间的相对运动。
因此,本发明所设计的海浪构网方法在绘制的实时性及真实感上优于其他方法,采用该方法可以科学、实时、逼真地绘制大规模海浪场景。
附图说明
图1是本发明的同心圆网格模型示意图。
图2是本发明的高度图的生成流程。
图3是本发明的高度图的平铺示意图。
图4是本发明的计算网格顶点纹理坐标的示意图。
具体实施方式
下面结合附图对本发明做进一步详细地描述:
1)设计同心圆网格模型模拟海平面
同心圆网格模型的建立如图1所示,假定在三维世界坐标系XYZ中,Y轴向上为正,模拟的海平面平行于XZ平面,视点位置是(sx,sy,sz),海面可见距离为Rmax。过视点位置作海平面的垂线,得交点S;以S为圆心,以递增的距离为半径做N个同心圆,对第i(1≤i≤N)个同心圆从iπ/M弧度位置处开始进行M等分,各等分点即为同心圆网格模型的网格顶点,顶点总数为M×N个。各同心圆半径的计算公式为
Ri=Rmin+f(i) i=2,3,…N (1)
其中Rmin等于R1,为同心圆最小半径;f(i)为大于0的递增函数,可令
f(i)=(i/N)2·(Rmax-Rmin) (2)
设第i个同心圆上第j个网格顶点的坐标为(xij,yij,zij),其计算公式为
2)采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图
(1)FFT方法生成高度图的相关理论
假定模拟的海平面平行于XZ平面,在XZ平面Lx×Lz采样区域内有M×N个采样点,时间t时,采样点x=(nLx/N,mLz/M)的波高h(x,t)由位置及时间决定,其FFT表示式为
其中k=(kx,kz)为二维矢量,其长度为k,kx=2πn/Lx,kz=2πm/Lz;n和m均为整数,-N/2≤n≤N/2,-M/2≤m≤M/2;为波幅值,它决定了波浪的表面状况,波幅值可用波浪谱函数表示为
考虑风影响的Phillips波浪谱表示式为
其中L=V2/g;g为重力加速度;V为风速;为风向;A是常数。初始波幅值可用高斯随机数来生成
其中ξr,ξi∈[0,1],是相互独立的高斯随机数。使用高斯分布的随机数生成的波幅值符合海面波动的实验数据。
得到波幅值后,根据式4,通过FFT可得到采样点的波高h(x,t)。
(2)基于GPU的高度图生成
图2显示了基于GPU采用FFT方法生成高度图的流程。首先在CPU中计算出 分别以纹理形式保存;将这两个纹理与时间t作为GPU的输入,在GPU中计算出波幅值然后在GPU中依据式4进行FFT,得到h(x,t),并保存为纹理,h(x,t)纹理即为高度图。
3)采样多次平铺的高度图获得网格顶点的高度
生成高度图时,FFT方法的采样区域通常小于同心圆网格模型所模拟的海平面范围,对此可多次平铺高度图以覆盖同心圆网格的全部区域。图3是高度图的平铺示意图,实线圆为同心圆网格模型的最大圆,虚线小方格代表高度图,对高度图进行l次平铺,l=2Rmax/Lx,这样就覆盖了面积为2Rmax×2Rmax的方形区域。
平铺高度图覆盖同心圆网格的全部区域后,可利用顶点纹理获取技术采样多次平铺的高度图,得到网格顶点的高度,从而用网格构建出了海浪表面的几何形状。
4)实时计算网格顶点纹理坐标以实现海浪与视点的相对运动
同心圆网格模型以视点为中心,并随视点一起运动。在航海模拟器中,视点是“绑定”在船舶驾驶台上的,这就意味着同心圆网格是随船舶一起运动的,因此绘制的海浪也是随船舶一起运动的,海浪与船舶之间没有相对运动。在船舶实际驾驶时,海浪与船舶之间的相对运动是一个比较重要的航行参照,因此在航海模拟器中有必要体现这一相对运动,以满足船舶驾驶的实际需求,同时增强海浪场景的真实感。
计算同心圆网格顶点的高度需要根据顶点纹理坐标来采样高度图,因此可以考虑依据船舶位置实时计算顶点纹理坐标,从而实现海浪与船舶的相对运动。如图4所示,设船舶的初始位置为p0(x0,y0,z0);l为高度图的平铺次数。此时p0点的纹理坐标为(l/2,l/2),假定船舶航行一段时间后,到达了p1点,则p1的纹理坐标(s1,t1)用下式计算
有了同心圆网格中圆心的纹理坐标,根据模型的拓扑结构,可以计算出网格其他顶点的纹理坐标。这样,虽然同心圆网格随船舶一起运动,但网格顶点的纹理坐标根据船舶位置实时变化,实现了海浪与船舶的相对运动。
Claims (1)
1.航海模拟器场景中的海浪构网方法,其特征在于,该方法包括如下步骤:1)设计同心圆网格模型模拟海平面;2)采用基于GPU的FFT方法生成符合Phillips谱的海浪高度图;3)采样多次平铺的高度图获得网格顶点的高度;4)依据视点位置实时计算网格顶点纹理坐标,实现海浪与视点的相对运动,其中:
步骤1)是按以下方式实现的:过视点所在位置做海平面的垂线,得一交点,以该点为圆心,以递增的距离为半径做多个同心圆,并对每个同心圆进行相同数量的等分,最后连接相邻同心圆的各等分点组成三角形网格;
步骤3)是按以下方式实现的:多次平铺高度图以覆盖同心圆网格的全部区域,然后利用顶点纹理获取技术采样多次平铺的高度图,得到网格顶点的高度,从而用网格构建出海浪表面的几何形状;
步骤4)是按以下方式实现的:依据视点所在位置实时计算网格顶点的纹理坐标,并用得到的纹理坐标采样高度图,这样同心圆网格虽随视点一起运动,但网格顶点的纹理坐标根据视点位置实时变化,实现了海浪与视点的相对运动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100121490A CN101587594B (zh) | 2009-06-19 | 2009-06-19 | 航海模拟器场景中的海浪构网方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100121490A CN101587594B (zh) | 2009-06-19 | 2009-06-19 | 航海模拟器场景中的海浪构网方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101587594A CN101587594A (zh) | 2009-11-25 |
CN101587594B true CN101587594B (zh) | 2011-06-15 |
Family
ID=41371829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100121490A Active CN101587594B (zh) | 2009-06-19 | 2009-06-19 | 航海模拟器场景中的海浪构网方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101587594B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826218B (zh) * | 2010-01-26 | 2011-12-07 | 北京水晶石数字科技股份有限公司 | 一种海平面实时模拟的方法 |
CN101826317B (zh) * | 2010-01-26 | 2012-01-18 | 北京水晶石数字科技股份有限公司 | 一种海天相接实时模拟的方法 |
CN102169593B (zh) * | 2010-02-26 | 2016-02-24 | 新奥特(北京)视频技术有限公司 | 一种使用cgfx创建三维云图的方法和装置 |
CN102141612B (zh) * | 2010-12-30 | 2012-11-28 | 北京理工大学 | 一种基于Chirp Z变换的快速海浪模拟方法 |
CN102982239B (zh) * | 2012-11-15 | 2016-02-10 | 上海交通大学 | 基于海浪谱的三维海浪模拟方法 |
CN103631148B (zh) * | 2013-08-28 | 2017-03-15 | 中国人民解放军海军大连舰艇学院 | 一种基于ais的船舶驾驶实时虚拟增强仿真系统及方法 |
CN104657097A (zh) * | 2013-11-25 | 2015-05-27 | 中国移动通信集团公司 | 一种波浪型动态图像的显示方法和设备 |
CN103679803B (zh) * | 2013-12-03 | 2016-07-06 | 大连海事大学 | 一种航海模拟器场景中海冰动态建模方法 |
CN107607092B (zh) * | 2017-08-22 | 2019-11-12 | 哈尔滨工程大学 | 一种基于无人机遥感的波浪与浮体运动预报系统 |
CN110378958B (zh) * | 2019-06-19 | 2022-04-22 | 北京巴别时代科技股份有限公司 | 基于fft数据预烘焙技术的海面生成方法 |
CN112370777A (zh) * | 2020-11-12 | 2021-02-19 | 网易(杭州)网络有限公司 | 图像渲染方法、装置和电子设备 |
CN115453914B (zh) * | 2022-10-19 | 2023-05-16 | 哈尔滨理工大学 | 一种考虑海浪干扰的无人艇回收分布式决策仿真系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0981108A2 (en) * | 1998-08-14 | 2000-02-23 | Xerox Corporation | Method, apparatus and computer medium for surface reconstruction by voronoi filtering |
CN101000721A (zh) * | 2006-12-29 | 2007-07-18 | 大连海事大学 | 高品质航海模拟器及其开发平台系统 |
CN201156304Y (zh) * | 2006-12-29 | 2008-11-26 | 大连海事大学 | 高品质航海模拟器 |
CN101430833A (zh) * | 2008-12-09 | 2009-05-13 | 大连海事大学 | 海上搜救仿真系统及其开发平台 |
-
2009
- 2009-06-19 CN CN2009100121490A patent/CN101587594B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0981108A2 (en) * | 1998-08-14 | 2000-02-23 | Xerox Corporation | Method, apparatus and computer medium for surface reconstruction by voronoi filtering |
CN101000721A (zh) * | 2006-12-29 | 2007-07-18 | 大连海事大学 | 高品质航海模拟器及其开发平台系统 |
CN201156304Y (zh) * | 2006-12-29 | 2008-11-26 | 大连海事大学 | 高品质航海模拟器 |
CN101430833A (zh) * | 2008-12-09 | 2009-05-13 | 大连海事大学 | 海上搜救仿真系统及其开发平台 |
Also Published As
Publication number | Publication date |
---|---|
CN101587594A (zh) | 2009-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101587594B (zh) | 航海模拟器场景中的海浪构网方法 | |
CN102855400B (zh) | 一种基于投影网格的海洋表面建模及实时光照方法 | |
US20210232733A1 (en) | Systems and methods for computer simulation of detailed waves for large-scale water simulation | |
CN101329772B (zh) | 一种基于sph的运动物体与水交互的仿真建模方法 | |
CN101706972A (zh) | 海上溢油的三维可视化算法 | |
CN109003322B (zh) | 一种动力定位船舶海上作业的三维海浪仿真优化方法 | |
CN102592297B (zh) | 一种基于3d网格的实时水波纹理处理方法 | |
CN102789650B (zh) | 一种基于粒子系统的海面航迹并行化仿真方法 | |
CN101930622A (zh) | 浅水水波的真实感建模与绘制 | |
CN104299259A (zh) | 一种动态插值方法和海面场景生成方法 | |
CN105894563A (zh) | 一种数字地球上的全球海洋效果模拟方法 | |
CN103021010A (zh) | 基于gpu的海浪特效实时渲染 | |
CN106934192A (zh) | 一种参数优化的浅水方程模型水体建模方法 | |
CN104143207A (zh) | 基于流计算的大范围动态海浪实时渲染方法 | |
Yang et al. | GPU-based real-time simulation and rendering of unbounded ocean surface | |
CN104574518A (zh) | 具有丰富细节的大规模海洋场景半物理绘制方法 | |
CN105303601A (zh) | 一种基于粒子系统的喷泉模拟实现方法 | |
CN109064534A (zh) | 一种基于网页的全球海浪真实感绘制方法 | |
CN116310221A (zh) | 一种船舶摇荡与视景波浪运动匹配方法、终端设备及介质 | |
Wang et al. | Ocean wave real-time simulation based on adaptive fusion | |
Ma et al. | Real-time ocean wave motion simulation based on statistic model and GPU programming | |
CN104574490A (zh) | 一种大规模云场景绘制方法 | |
Gonzalez-Ochoa et al. | From a calm puddle to a stormy ocean: Rendering water in uncharted | |
Hongxiang et al. | Real-time rendering of ocean in marine simulator | |
Lachman | An open programming architecture for modeling ocean waves |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |