基于纹理投影方法的海上溢油可视化及交互方法转让专利

申请号 : CN201710433619.5

文献号 : CN107274482B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邹长军尹勇孙霄峰神和龙刘秀文任鸿翔张秀凤任俊生肖方兵丛琳刘春雷钱小斌

申请人 : 大连海事大学

摘要 :

本发明公开了一种基于纹理投影方法的海上溢油可视化及交互方法,包括以下步骤:基于海上溢油数学模型生成海面溢油多边形;基于投影变换进行溢油多边形的投影变换;基于纹理烘焙方法进行溢油多边形纹理生成并基于着色器进行片元融合;根据多边形裁剪方法进行多边形交互。本发明通过海上溢油模型生成溢油多边形后,采用纹理贴图技术对多边形进行纹理贴图,从而实现不同油膜可视化效果。本发明无需进行特定模型纹理坐标计算,可以在任意表面山进行绘制,所有变换在GPU(图形加速卡)中进行,充分利用了GPU高效并行计算能力,提高油膜纹理绘制效率。本发明通过基于多边形裁剪算法可以实现快速的仿真,能够实现海上溢油交互的效果。

权利要求 :

1.基于纹理投影方法的海上溢油可视化及交互方法,其特征在于:包括以下步骤:

A、基于海上溢油数学模型生成海面溢油多边形

海上溢油数学模型如下式所示:

其中:运动粘滞系数Δ=(ρw-ρ0)/ρw,净表面张力σ=δwa-δao-δow,r1(t)、r2(t)、r3(t)分别为三个阶段的扩展直径;K1、K2、K3分别为三个阶段的经验系数,取K1=1.14,K2=0.98~

1.5,K3=0.13~2.3;g为重力加速度;V为溢油体积;t为时间;ρo和ρw分别为油和海水的密度;δwa、δao、δow分别为水和空气间、油和空气间、油和水间的界面张力;ν为油的粘度;所述的三个阶段为重力和惯性力作用阶段、重力和粘性力作用阶段及表面张力和粘性力作用阶段,重力和惯性力作用阶段与重力和粘性力作用阶段之间的临界时间t1、重力和粘性力作用阶段与表面张力和粘性力作用阶段之间的临界时间t2如下式所示:B、基于投影变换进行溢油多边形的投影变换

把摄像机作为一个投影源,位于场景的某处,就像OpenGL中定义一个摄像机一样,摄像机投影坐标系的中心点位于投影源所在的位置,视图矩阵Mview将坐标转化到投影坐标系,透视投影矩阵Mproj将视景体转换为投影方向上长宽分别为2个单位大小的视景体,其中心点位于投影坐标系的原点;该投影变换过程用下式表示:Mworld=P·Mproj·Mview  (3)

式中:Mworld为需要计算的世界坐标系下的纹理坐标;P为局部坐标系下纹理坐标;Mproj为投影矩阵;Mview为视矩阵;该投影变换过程将世界坐标系中溢油多边形转换到投影机坐标系下,从而实现投影变换;

C、基于纹理烘焙方法进行溢油多边形纹理生成并基于着色器进行片元融合

根据海上溢油数学模型计算溢油多边形各顶点坐标,并将计算后的溢油多边形进行纹理烘培,生成溢油多边形的纹理,将该纹理进行投影变换得到世界坐标系下投影变换后的纹理坐标,在片元着色器中进行融合,最后输出渲染效果:Tout=αTbk+(1﹣α)Toil  (4)

式中α为背景所占的比重;Tbk、Toil和Tout分别为海面像素值、油膜纹理像素值和输出结果的像素颜色值;所述的输出结果包括背景颜色、前景颜色、最终融合后的颜色;

D、根据Vatti多边形裁剪方法进行多边形交互;为了实现海面溢油与溢油应急设备的交互效果,采用基于Vatti多边形裁剪技术的交互方式;通过采用溢油应急设备轮廓构建裁剪包围盒即裁剪多边形,通过将该包围盒与海面溢油多边形即被裁剪多边形进行裁剪,实现海面溢油的动态交互效果。

说明书 :

基于纹理投影方法的海上溢油可视化及交互方法

技术领域

[0001] 本发明属于航海场景仿真技术领域,特别涉及一种航海模拟器中海面溢油可视化及交互方法。

背景技术

[0002] 随着我国经济的发展和国际经济对石油等相关产品的依赖,海上石油运输占据着越来越重要的地位。同时随着世界航运的发展和船舶数量的增加,由于船员队伍素质的参差不齐,导致海上事故也随之增加,海上事故往往伴随着溢油的发生。在此背景下加强应急人员的培训和演练尤为重要。通过应急演练的开展可以对演练中暴露出的问题和不足进行[1]总结,对应急预案进行修改和完善,使之更具有针对性、实用性、可操作性 。构建基于VR技术的海上溢油应急培训系统,可大大提高培训人员的应急能力,减少实际应急训练的成本。
该系统的关键技术之一是“真实感海上溢油三维场景”,如何高效、逼真地实现海上溢油场景的动态可视化是一个十分有挑战性的课题。
[0003] 溢油模型方面:Fay[2,3]、Lehr[4]和Liu[5]分别对溢油模型进行研究。Fay最早提出了三阶段溢油扩散模型。Lehr在Fay的基础上考虑了风场对油膜的影响。Liu在此基础上提出了一个溢油扩散统一模型。
[0004] 现有的海面溢油可视化成果中,相关学者主要采用的是基于油粒子方法和平面反射技术进行可视化,如李久松[6]、余枫[7]、任鸿翔[8]、吕憧憬[9]、荣占东[10]。由于其方法是根据镜面反射原理,将可视化对象反射到海面上,同“水中倒影”一样将可视化对象反射到海面,该方法由于受到入射角和反射角的影响,海面溢油的可视范围受到观察者的观察角度及海面背景的影响,因此存在着一定的“盲区”,特别是在靠近溢油的区域该现象尤为明显;其次由于基于油粒子的方法绘制的溢油块是不连续的,无法再现整块成片溢油的可视化。
再次,现有的油粒子方法中,虽然能够对单个粒子设置油膜纹理,但是所由于所采用是离散粒子形式,无法再现整体油膜纹理的效果,无法体现不同油膜纹理效果,不能良好地再现海上不同油品溢油的效果。因此现有的油粒子方法虽然能够模拟海上溢油的效果,但是其可视化效果仍然不够理想,如油膜破碎、不能体现完整连续油膜效果、不能很好体现不同油膜纹理可视化效果等。此外,已有研究中涉及海上溢油交互内容很少,而交互技术却又是海上溢油应急模拟中关键技术之一。因此急需提出基于多边形裁剪算法的海上溢油交互方法,用于实现溢油与围油栏等溢油应急设备交互功能。
[0005] 上述技术的参考文如下:
[0006] [1]梅玉龙,应急演练计算机三维模拟系统研究.中国安全生产科学技术,2012.8(4):第92-97页。
[0007] [2]Fay,J.A.,The Spread of Oil Slicks on a Calm Sea.Oil on the Sea,1969:p.53-64.。
[0008] [3]Fay,J.A.,Physical Processes in The Spread of Oil on A Water Surface.Physical-Biological Effects,1971:p.463-470。
[0009] [4]Lehr,W.D.,et  al.,Revisions  of  the  ADIOS  oil  spill model.Environmental Modeling&Software,2002.17(2):p.189-197。
[0010] [5]Liu,S.and J.Leendertse,A MODELING SYSTEM FOR COASTAL OIL SPILL RISKANALYSIS.1989:Coastal Engineering。
[0011] [6]李久松,基于i4Ocean平台的海上溢油动态可视化及应急决策支持系统的研究与设计,2013,中国海洋大学。
[0012] [7]Yu,F.and Y.Yin,Simulation and 3D Visualization ofOil Spill on the Sea,in IEEE International Symposium onVR Innovation.2011.p.213-216。
[0013] [8]Ren,H.,X.Zhang and Y.Yin,3D Real-Time Rendering of Continuous Oil Spill on Simulated Ocean.Journal of System Simulation,2008.19(20):p.5117-5120。
[0014] [9]吕憧憬等,海上溢油可视化信息系统的设计与实现.地理空间信息,2012.22(5):第21-23页。
[0015] [10]荣占东,海洋溢油模拟信息系统的设计与实现,2013,中国海洋大学:青岛.发明内容
[0016] 为解决现有技术存在的上述问题,本发明要设计一种既能够改善可视化效果、又能够实现海上溢油应急交互功能的基于纹理投影方法的海上溢油可视化及交互方法。
[0017] 为了实现上述目的,本发明的技术方案如下:基于纹理投影方法的海上溢油可视化及交互方法,包括以下步骤:
[0018] A、基于海上溢油数学模型生成海面溢油多边形
[0019] 海上溢油数学模型如下式所示:
[0020]
[0021] 其中:运动粘滞系数Δ=(ρw-ρ0)/ρw,净表面张力σ=δwa-δao-δow,r1(t)、r2(t)、r3(t)分别为三个阶段的扩展直径;K1、K2、K3分别为三个阶段的经验系数,取K1=1.14,K2=0.98~1.5,K3=0.13~2.3;g为重力加速度;V为溢油体积;t为时间;ρo和ρw分别为油和海水的密度;δwa、δoa、δow分别为水和空气间、油和空气间、油和水间的界面张力。所述的三个阶段为重力和惯性力作用阶段、重力和粘性力作用阶段及表面张力和粘性力作用阶段,上述三个阶段的临界时间如下式所示:
[0022]
[0023] B、基于投影变换进行溢油多边形的投影变换
[0024] 把摄像机作为一个投影源,位于场景的某处,就像OpenGL中定义一个摄像机一样,该投影坐标系的中心点位于投影源所在的位置,视图矩阵Mview将坐标转化到投影坐标系,透视投影矩阵Mproj将视景体转换为一个大小为2的视景体,其中心点位于投影坐标系的原点。该投影变换过程用下式表示。
[0025] Mworld=P·Mproj·Mview  (3)
[0026] 式中:Mworld为需要计算的世界坐标系下的纹理坐标;P为局部坐标系下纹理坐标;Mproj为投影矩阵;Mview为视矩阵。该投影变换过程将世界坐标系中溢油多边形转换到投影机坐标系下,从而实现投影变换。
[0027] C、基于纹理烘焙方法进行溢油多边形纹理生成并基于着色器进行片元融合[0028] 根据海上溢油数学模型计算溢油多边形各顶点坐标,并将计算后的溢油多边形进行纹理烘培,生成溢油多边形的纹理,将该纹理进行投影变换得到世界坐标系下投影变换后的纹理坐标,在片元着色器中进行融合,最后输出渲染效果。
[0029] Tout=αTbk+(1﹣α)Toil  (4)
[0030] 式中α为背景所占的比重。Tbk、Toil和Tout分别为海面像素值、油膜纹理像素值和输出结果的像素颜色值。所述的输出结果包括背景颜色、前景颜色、最终融合后的颜色。
[0031] D、根据多边形裁剪方法进行多边形交互。为了实现海面溢油与溢油应急设备的交互效果,采用基于多边形裁剪技术的交互方式。通过采用溢油应急设备轮廓构建裁剪包围盒即裁剪多边形,通过将该包围盒与海面溢油多边形即被裁剪多边形进行裁剪,实现海面溢油的动态交互效果。
[0032] 与现有技术相比,本发明具有以下有益效果:
[0033] 1、为了解决现有海面溢油可视化方法中不能体现连续完整油膜可视化效果、不能体现不同油膜纹理效果等缺陷,本发明提出采用基于海上溢油数学模型的溢油多边形生成方法。通过海上溢油模型生成溢油多边形后,采用纹理贴图技术对多边形进行纹理贴图,从而实现不同油膜可视化效果。
[0034] 2、为了解决现有海面溢油可视化方法的效率不高问题,针对航海模拟器的实际需求,本发明提出了基于纹理投影方法的海上溢油可视化方法。纹理投影方法与投影机工作原理类似,其最重要的一点就是确定纹理坐标,纹理坐标的确定依赖于物体表面坐标的相对位置和投影机位置。为把纹理投影到一个表面上,需要根据投影表面的位置和投影源来确定纹理坐标。本发明无需进行特定模型纹理坐标计算,即与具体模型无关;并且可以在任意表面山进行绘制,所有变换在GPU(图形加速卡)中进行,充分利用了GPU高效并行计算能力,提高油膜纹理绘制效率。
[0035] 3、为了解决海面溢油可视化与海面背景融合问题,本发明将纹理烘培技术和基于片元着色器的像素融合方法应用于海上溢油可视化,使其在可视化方面更加自然,与海面贴合更加紧密;而且充分利用图形加速卡的并行计算能力,提升计算效率,更符合实时可视化系统性能要求。
[0036] 4、海上溢油应急模拟中,需要模拟溢油与围油栏等设备之间交互过程。由于基于CFD过程的交互需要耗费大量的计算,无法实现实时模拟。因此,本发明通过基于多边形裁剪算法可以实现快速的仿真,能够实现海上溢油交互的效果。

附图说明

[0037] 图1是本发明的纹理投影方法流程图。
[0038] 图2本发明投影纹理方法示意图。
[0039] 图3是本发明生成油膜纹理示意图。
[0040] 图4是本发明油膜纹理投影在海面的可视化效果图。
[0041] 图5是本发明油膜纹理投影在3级海况海面可视化效果。
[0042] 图6是本发明油膜纹理投影6级海况海面可视化效果
[0043] 图7是本发明航海模拟器中基于纹理投影方法海面可视化俯视效果。
[0044] 图8是本发明航海模拟器中基于纹理投影方法海面可视化测视效果

具体实施方式

[0045] 下面结合附图对本发明做进一步详细地描述。
[0046] 1、基于溢油模型的海面溢油多边形生成算法
[0047] 本发明中根据溢油发生时刻溢油体积、密度、粘性等,如式(1)所示,计算溢油发生后油膜位置、形状和面积。具体流程如图1所示。
[0048] 2、溢油多边形的投影变换
[0049] 在得到溢油多变形之后,需要采用投影变换对多边形进行投影变换。其主要流程如下:
[0050] (1)根据溢油种类选择合适的油膜纹理,将油膜纹理投影到溢油多边形表面,得到具有真实油膜效果的溢油多边形;
[0051] (2)根据上一步中得到的溢油多边形进行纹理烘焙,得到溢油多边形纹理;
[0052] (3)将得到的油膜纹理再次投影变换;此次是将海面作为投影平面,从而实现油膜纹理在海面的可视化。
[0053] 如图2所示,右侧为投影表面,左侧为投影机。其中投影面可以是平面也可以是曲面。通过将纹理烘培得到的油膜纹理作为输入,进行投影变换后显示在对应的投影面上,实现溢油可视化。如图3为通过纹理烘培得到的油膜纹理;图4-6为油膜纹理投影在不同海况下海面可视化效果。
[0054] 3、基于着色器的片元融合算法
[0055] 根据投影变换得到的纹理与海面进行融合,得到油膜纹理与海面进行融合后效果。本发明通过将纹理烘培得到的油膜纹理进行投影变换后与海面进行融合。如式(4)所示,Tbk、Toil和Tout分别为背景、油膜和输出的像素颜色值。α为背景所占的比重,可以通过调节α值大小来实现不同背景亮度效果。图5-6为不同海面融合后可视化效果,可以看出油膜纹理在不同海况下的不同起伏效果;图-8为航海模拟器中基于纹理投影方法溢油可视化效果图,模拟两船拖带围油栏进行收油作业场景。
[0056] 4、基于多边形裁剪算法的海上溢油交互方法实现
[0057] 本发明提出采用Vatti实现多边形裁剪。Vatti算法介绍:在图形系统中,二维裁剪是最为基础、最为常用的操作之一。对裁剪算法的研究主要集中在线段裁剪和多边形裁剪两方面。在使用中,多边形裁剪与线段剪裁相比具有更高的使用率,因此它是目前裁剪研究的主要课题。多边形裁剪中用于裁剪的多边形称为窗口多边形(裁剪多边形),被裁剪的多边形称为实体多边形(被裁剪多边形)。多边形愈复杂,其裁剪算法就愈难以实现。现有的解决方案或者局限于某一类多边形,或者结构复杂、时间消耗大。在这类算法中只有Weiler算法、Vatti算法及Greiner-Hormann算法可以在合理的时间内处理一般的情况。其中、Weiler算法使用的是树形数据结构,而Vatti算法和Greiner-Hormann算法使用的是双线性链表数据结构,后两者在复杂性及运行速度方面都优于前者。Vatti算法可以在合理的时间内处理一般的多边形裁剪情况;Vatti算法使用的是双线性链表数据结构,具有较低的算法复杂性和较高的运行速度,故该发明采用基于该算法的多边形的裁剪技术。
[0058] 多边形裁剪算法步骤如下:
[0059] (1)计算两个多边形图层交点。
[0060] (2)针对多边形顶点和图层交点,对其按纵坐标进行排序。
[0061] (3)根据纵坐标建立扫面线,将主多边形和窗口多边形层分别进行分割,得到两个梯形集合。
[0062] (4)在各扫描带上建立“交梯形”集合。
[0063] (5)在“交梯形”集合的基础上通过边界追踪等方法构建裁剪多边形并输出计算结果。
[0064] 本发明不局限于本实施例,任何在本发明披露的技术范围内的等同构思或者改变,均列为本发明的保护范围。