发明名称 一种基于OSG三维引擎的海陆接合可视化方法
摘要 本发明涉及一种基于OSG三维引擎的海陆接合可视化方法,属于图形可视化技术领域。包括:使用OSG三维渲染引擎进行三维场景框架搭建;使用VPB生成大规模地形模型文件;使用海洋绘制插件生成海洋节点;将海洋节点与地形模型文件同时加载入OSG的场景树中进行可视化;如果海洋绘制插件绘制出的海洋节点不会跟随视点移动而移动,设置海洋节点为动态节点;设置海洋高度随视点高度动态变化并根据海洋高度进行显示。对比现有技术,本发明方法通过在一个场景中同时加入大规模陆地节点与海洋节点,并根据视点高度动态调整海洋的高度,使得视点远离海陆场景时,海洋与陆地的深度缓存相差不会过小,从而避免海陆频闪的问题;同时简单高效。
申请公布号 CN105069841A 申请公布日期 2015.11.18
申请号 CN201510454965.2 申请日期 2015.07.29
申请人 北京理工大学 发明人 李凤霞;霍达;李立杰;陈宇峰
分类号 G06T17/05(2011.01)I 主分类号 G06T17/05(2011.01)I
代理机构 代理人
主权项 一种基于OSG三维引擎的海陆接合可视化方法,其特征在于,包括以下步骤:步骤1,使用OSG三维渲染引擎进行三维场景框架搭建;步骤2,使用地形建模插件生成大规模地形模型文件;步骤3,使用海洋绘制插件生成海洋节点;并将海洋节点与地形模型文件同时加载入OSG的场景树中进行可视化;步骤4,如果海洋绘制插件绘制出的海洋节点不会跟随视点移动而移动,设置海洋节点为动态节点,即海洋节点绘制范围不会动态变化,并且应跟随视点移动而移动;步骤5,设置海洋高度随视点高度动态变化,然后根据海洋高度进行海洋场景显示,具体过程如下:步骤5.1在三维场景中加入漫游器;步骤5.2修改漫游器的缩放回调函数,在回调函数中按照下述公式(1)或(2)设置海洋高度值,公式(1)是针对着重观察陆地模型时的情况,公式(2)是针对着重观察海洋效果时的情况:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>H</mi><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><msub><mi>H</mi><mn>0</mn></msub><mo>-</mo><mfrac><mrow><mi>d</mi><mi>i</mi><mi>s</mi><mi>tan</mi><mi>c</mi><mi>e</mi></mrow><mrow><mfrac><mn>5</mn><mn>6</mn></mfrac><mo>&times;</mo><mi>W</mi><mo>&divide;</mo><mi>h</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>d</mi><mi>i</mi><mi>s</mi><mi>tan</mi><mi>c</mi><mi>e</mi><mo>&le;</mo><mfrac><mn>5</mn><mn>6</mn></mfrac><mo>&times;</mo><mi>W</mi></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>H</mi><mn>0</mn></msub><mo>-</mo><mi>h</mi></mrow></mtd><mtd><mrow><mi>d</mi><mi>i</mi><mi>s</mi><mi>tan</mi><mi>c</mi><mi>e</mi><mo>&gt;</mo><mfrac><mn>5</mn><mn>6</mn></mfrac><mo>&times;</mo><mi>W</mi></mrow></mtd></mtr></mtable></mfenced><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000769901420000011.GIF" wi="1780" he="278" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>H</mi><mo>=</mo><mfenced open = '{' close = ''><mtable><mtr><mtd><mrow><msub><mi>H</mi><mn>0</mn></msub><mo>+</mo><mfrac><mrow><mi>d</mi><mi>i</mi><mi>s</mi><mi>tan</mi><mi>c</mi><mi>e</mi></mrow><mrow><mfrac><mn>5</mn><mn>6</mn></mfrac><mo>&times;</mo><mi>W</mi><mo>&divide;</mo><mi>h</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>d</mi><mi>i</mi><mi>s</mi><mi>tan</mi><mi>c</mi><mi>e</mi><mo>&le;</mo><mfrac><mn>5</mn><mn>6</mn></mfrac><mo>&times;</mo><mi>W</mi></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>H</mi><mn>0</mn></msub><mo>+</mo><mi>h</mi></mrow></mtd><mtd><mrow><mi>d</mi><mi>i</mi><mi>s</mi><mi>tan</mi><mi>c</mi><mi>e</mi><mo>&gt;</mo><mfrac><mn>5</mn><mn>6</mn></mfrac><mo>&times;</mo><mi>W</mi></mrow></mtd></mtr></mtable></mfenced><mo>;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000769901420000012.GIF" wi="1781" he="272" /></maths>其中,W为海陆场景规模,H<sub>0</sub>为初始化海洋绘制高度,distance为视点距离海陆场景的高度,h为海洋波浪高度;步骤5.3根据计算得到的海洋高度值,区分如下情况进行显示:(1)如果地形建模插件所绘制出的地形模型中的海洋部分有贴图,则distance增长到5/6W之后,海洋节点不再显示,只显示贴图即可;(2)如果地形建模插件所绘制出的地形模型中的海洋部分没有贴图,则distance增长到5/6W之后,海洋节点继续显示,高度不再发生变化。
地址 100081 北京市海淀区中关村南大街5号北京理工大学
您可能感兴趣的专利