一种海洋水体虚拟现实的建模方法

文档序号:6575868阅读:232来源:国知局

专利名称::一种海洋水体虚拟现实的建模方法
技术领域
:本发明涉及海洋水体建模方法,具体涉及一种海洋水体虚拟现实的建模方法。用于实现海洋水体的快速、实时建模,运用该方法可在中国海区域内任意划定观测区进行三维建模。
背景技术
:海洋约占地球表面积的71%,是一个开放的、具有多样性的复杂系统,其中有各种不同的时空尺度和不同层次的物质存在和运动形态。目前海洋水体的表达主要以电子海图等二维地图方式,海洋温度、盐度、透明度等反演数据多以文本的形式存在。随着海洋资源的开发与利用,对于海洋水体与海洋环境反演数据三维建模与可视化的需求逐渐增加。海洋资源的开发与利用要以海洋特征和规律为基础,计算机技术、虚拟现实技术等相关技术的发展为海洋水体三维建模提供了强有力的技术支撑。本发明的虚拟现实海洋水体实时建模是了解海洋综合环境的重要手段,是再现海洋温度、盐度、透明度等相关物理量指标的新方法。本研究提出的基于RS和GIS的海洋水体虚拟现实建模方法可以实现海洋水体的快速、实时建模,并能对中国海任意划定区域的水体建模。随着"数字海洋"的提出,国内外海洋三维实时建模研究日益成为热点,见[l]RinehartR,WrightD.BenthicHabitatClassificationand3-DVisualizations[C].AssociationofAmericanGeographersCentennialMeeting,American,Samoa,2004.[2]AlanM,etal.Visually-enabledGeo~collaborationtoSupportDataExploration&Decision-making[C].Proceedingsofthe21stInternationalCartographicConference,Durban,SouthAfrica,2003[3]上官伟,等.真实海洋环境视景仿真技术研究[J].系统仿真学报.2006:18(增2)。此外,国内外商用软件也不断推出,例如MultiGen-Pamdigm.Inc的Vega。但海洋三维实时建模研究尚处于起步阶段,实时性不高,数据来源多样、复杂,商用软件价格昂贵都是目前存在的主要问题。虚拟现实(VirtualReality)是在计算机中构造出一个形象逼真的模型,从而生成一种具有三维世界效果的模拟环境。它是利用计算机对复杂数据进行可视化操作与交互的一种高科技手段,通过模拟的仿真虚拟环境使参观者得到身历其境的感觉。OpenGL(OpenGraphicsLibrary)图形系统是一个软件接口,让程序员能够创建交互式程序,使用计算机图形学技术生成具有真实感的图像。使用OpenGL可以控制计算机图形学技术来生成真实感图形。OpenGL包括大约250个函数,用户可以使用它们来指定物体和操作,以创建交互式三维应用程序。本发明中涉及到的OpenGL坐标系统包括以下三种世界坐标是OpenGL中用来描述场景的坐标,Z轴垂直屏幕向外,X轴从左到右,Y轴从下到上,是右手笛卡尔坐标系统。物体坐标是以物体某一点为原点而建立的"世界坐标",该坐标系仅对该物体适用,用来简化对物体各部分坐标的描述。物体放到场景中时,各部分经历的坐标变换相同,相对位置不变,所以可视为一个整体,与人类的思维习惯一致。眼坐标是以视点为原点,以视线的方向为Z轴正方向的坐标系中的方向。随着海洋环境卫星遥感的发展,大量的RS数据己经或正在应用GIS技术进行管理与维护,海洋环境卫星遥感数据具有范围广、实时性高等特点,通过方便可行的数据处理方法和虚拟现实实时建模可以使大量的RS数据成为反映海洋水体的最直观的资料之一。
发明内容本发明的目的是克服现有技术的不足,提供一种海洋水体虚拟现实的建模方法。海洋水体虚拟现实的建模方法如下步骤1)通过数据转换服务的方式,将原始海洋遥感环境反演数据文本格式自动转换为栅格数据集;2)对转换后的数据进行了基于时间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速查询;3)OpenGL三维海洋水体场景的空间坐标系统设定,经过Z轴縮放、坐标系沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置;4)根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体;5)以海面波浪纹理对海表进行贴图,海底地形经由数字高程模型转换为OpenGL原语,用单一颜色渲染与多光源参数设置建模;6)由平行轮廓线"投影"和地形模拟拉伸获得栅格数据集物理量横截面,透明显示海洋水体表面获得各个角度的可视化效果。所述的通过数据转换服务的方式,将原始海洋遥感环境反演数据文本格式自动转换为栅格数据集步骤是将原始海洋环境反演数据的Head文件头和数据体以文件流的形式读入内存,再将其按照栅格数据集的数据组织方式写入栅格数据集,利用Internet信息服务器检测目标文件夹下的数据文件,转换入库后删除源文件。所述的对转换后的数据进行了基于时间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速査询步骤基于时间可视化方式的存储是将原始海洋环境反演数据的Head文件头中的产品周期、产品生成时间段、产品生成时间点分别保存在产品元数据表、周期性时间元数据表和瞬时性时间元数据表中,以标准的SQL时间査询语句可快速的査询出时间集合内的数据集。所述的OpenGL三维海洋水体场景的空间坐标系统设定,经过Z轴縮放、XY轴坐标平面沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置步骤OpenGL默认的世界坐标系统的X轴、Y轴和Z轴坐标单位长度是统一的,但考虑到海洋水体数据的特征,即水平方向(X,Y)坐标范围为(东经180度至西经180度,北纬90度至南纬90度),而全球海洋深度由0米至-10000多米不等,X轴、Y轴方向与Z轴方向的坐标单位长度相差2倍数量级以上,则会造成Z轴方向过于陡峭,建模效果不佳。所以,将Z轴坐标的单位长度縮小为原始长度的1/100,即X轴、Y轴的1单位长度,在Z轴上为100。OpenGL场景的世界坐标系统与眼坐标系统的XY轴平面是重合于屏幕平面的,所以需要将坐标系统沿垂直屏幕方向向屏幕内平移。世界坐标系统为右手笛卡尔坐标系统,XY轴平面与屏幕平行,生成场景的海平面与屏幕相平行,这与海平面应处于水平方向的常识不符,因此,要将坐标系旋转至Z轴向上,X轴水平向右为正方向、Y轴向上为正方向。代码如下GL.glScaled(l.0,1.0,1.0/100.0);GL.glTranslatef(0.0f,-200.0f,0.0f);GL.glRotated(90.0,1.0,0.0,0.0);所述的根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体步骤:根据用户构造的任意海域多边形轮廓线,利用GIS的方法裁剪、掩膜海表轮廓线外的区域,构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体。将轮廓线沿Z轴向下移动至海底地形数字高程模型的最大深度,两平行轮廓线之间以上下轮廓线上的拐点利用OpenGL构造矩形面,并透明显示。海洋水体柱状体X轴、Y轴平面内的尺寸取决于用户在二维电子地图中绘制的闭合多边形的尺寸,海洋水体深度Z轴方向是海底地形数字高程模型的最大深度。所述的以海面波浪纹理对海表进行贴图,海底地形经由数字高程模型转换为OpenGL原语,用单一颜色渲染与多光源参数设置建模步骤利用OpenGL在顶面进行海洋波浪纹理映射,贴图的位置信息来源于二维轮廓线,因海表为任意多边形,所以采用环绕模式"镜像"重复与裁剪来"补足"海表多边形映射或裁剪纹理,把海底地形数字高程模型先转换为文本文件格式,再用OpenGL原语描述出来,从而转化成OpenGL可识别的图形函数,海底地形采用单一颜色渲染,利用光照视点位置、视线方向、光照参数设置反映高程的变化。所述的由平行轮廓线"投影"和地形模拟拉伸获得栅格数据集物理量横截面,透明显示海洋水体表面获得各个角度的可视化效果步骤海洋水体柱状体的侧面用来表达海洋环境反演数据随深度变化的情况,通过平行轮廓线"投影"的方式将海表轮廓线映射到海洋环境反演数据的各分层信息上,得到海洋环境反演数据的二维轮廓线范围内的横截面。经预处理的海洋环境栅格数据集的像素为(x,y,value),其中包含坐标和物理量。海洋环境栅格数据集经由文本文件转换至OpenGL原语,再由地形模拟拉伸,即将物理量值value作为高程方向Z的坐标,以数字高程模型的方式拉伸获得显著直观的分层信息。海洋水体表面采用透明显示以便从任意角度透视各分层海洋环境反演数据。本发明与现有技术相比具有有益效果1)实时的三维海洋水体建模,有效的利用了海洋环境卫星遥感数据,提出了从卫星数据到OpenGL建模的解决方法,大大縮短了数据处理周期,与传统船测数据相比,时效性有了很大的提高;2)对转换后的数据进行了基于时间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速査询;3)通过海表试验区轮廓线构建方法可以构造出任意观测区的海洋水体立方体。这种实时的体构造方法能够更好的适应用户的需要;4)海洋水体虚拟现实建模是海洋环境监测的新手段。在建模完成后,能够清晰的反映出海洋温度、盐度、透明度等海洋环境反演数据物理量的变化情况,能够很好的对海洋环境进行监测,预报海洋自然灾害的发生,例如赤潮等;5)本发明是基于RS和GIS环境下,利用OpenGL作为建模工具实现三维海洋水体建模的新手段。有效的利用了海洋环境卫星遥感资料,通过划定中国海范围内任意观测区实现实时的三维海洋水体建模,可视化结果清晰、直观。本发明在海洋环境监测领域应用前景非常广阔。图l为本发明中RS海洋环境反演数据源文件格式示意图;图2为本发明基于GIS的海洋环境反演数据处理方法示意图;图3为本发明基于时间的可视化存储方法示意图;图4为本发明建模前坐标系统转换示意图;图5为本发明海表试验区轮廓线构建海表示意图;图6为本发明环绕模式"镜像"重复与裁剪示意图;图7为本发明场景生成的数据准备步骤示意图;图8为本发明生成的海洋水体场景示意图。具体实施例方式海洋水体虚拟现实的建模方法如下步骤1)通过数据转换服务的方式,将原始海洋遥感环境反演数据文本格式自动转换为栅格数据集;2)对转换后的数据进行了基于吋间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速查询;3)OpenGL三维海洋水体场景的空间坐标系统设定,经过Z轴縮放、坐标系统沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置;4)根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体;5)以海面波浪纹理对海表进行贴图,海底地形经由数字高程模型转换为OpenGL原语,用单一颜色渲染与多光源参数设置建模;6)由平行轮廓线"投影"和地形模拟拉伸获得栅格数据集物理量横截面,透明显示海洋水体表面获得各个角度的可视化效果。所述的通过数据转换服务的方式,将原始海洋遥感环境反演数据文本格式自动转换为栅格数据集步骤原始海洋环境反演数据是十六进制的文本文件格式,如图1所示,具体格式如下表所示<table>tableseeoriginaldocumentpage8</column></row><table><table>tableseeoriginaldocumentpage9</column></row><table>将原始海洋环境反演数据的Head文件头和数据体以文件流的形式读入内存,使用循环行与列的方法读取数据块中的物理量。再将其按照栅格数据集的数据组织方式写入栅格数据集,即按照头文件的信息设置栅格数据集的宽度、高度、象元大小、空间参考、波段数,将数据块中的数据写入像素块中的像素。图2是基于GIS的海洋环境反演数据处理方法示意图。利用Internet信息服务器检测目标文件夹下的数据文件,转换并入库后删除源文件。System.Timers.TimersetTimer=newSystem.Timers.Timer(2000);setTimer.Elapsed+=newElapsedEventHandler(setTimer—Elapsed);setTimer.Enabled=true;setTimer.AutoReset=true;setTimer.Start();所述的对转换后的数据进行了基于时间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速查询步骤基于时间可视化方式的存储是将原始海洋环境反演数据的Head文件头中的周期性产品的周期值存放在产品元数据表中,非周期性产品存储为0;周期性时间元数据表存储起始日期(SDate)、终止日期(EDate)字段分别存储产品的开始年月日和终止年月日;起始时间(STime)、终止时间(ETime)字段存储产品的开始时分秒和终止时分秒。瞬时性时间元数据表存储瞬时性时间点的日期(Date)和时间(Time)。产品时间采用以上字段的集合来存储。以上时间存储对象与SQL标准中的时间类型一致,所以采用标准的SQL语言即可快速的査询出时间集合内的数据集。具体的表存储方式如图3所示。所述的OpenGL三维海洋水体场景的空间坐标系统设定,经过Z轴縮放、XY轴坐标平面沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置步骤OpenGL默认的世界坐标系统的X轴、Y轴和Z轴坐标单位长度是统一的,但考虑到海洋水体数据的特征,即水平方向(X,Y)坐标范围为(东经180度至西经180度,北纬90度至南纬90度),而全球海洋深度由0米至-10000多米不等,X轴、Y轴方向与Z轴方向的坐标单位长度相差2倍数量级以上势必会造成Z轴方向过于陡峭,建模效果不佳。所以,将Z轴坐标的单位长度縮小为原始长度的1/100,即X轴、Y轴的1单位长度,在Z轴上为100。OpenGL场景的世界坐标系统与眼坐标系统的XY轴平面是重合于屏幕平面的,所以需要将坐标系统沿垂直屏幕方向向屏幕内平移。世界坐标系统为右手笛卡尔坐标系统,XY轴平面与屏幕平行,生成场景的海平面与屏幕相平行,这与海平面垂直于人眼视线方向的常识不服,要将坐标系旋转至Z轴向上,X轴水平向右为正方向、Y轴向上为正方向。坐标系统转换前后效果图如图4所示。代码如下GL.glScaled(l.O,l.O,1.0/100.0);GL.glTmnslatef(0.0f,-200.0f,0.0f);GL.glRotated(90.0,1.0,0.0,0.0);所述的根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体步骤:根据用户构造的任意海域多边形轮廓线,利用GIS的方法裁剪、掩膜海表轮廓线外的区域,构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体。将轮廓线沿z轴向下移动至海底地形数字高程模型的最大深度,两平行轮廓线之间以上下轮廓线上的拐点利用OpenGL构造矩形面,并透明显示。海洋水体柱状体X轴、Y轴平面内的尺寸取决于用户在二维电子地图中绘制的闭合多边形的尺寸,海洋水体深度Z轴方向是海底地形数字高程模型的最大深度。所述的根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体步骤设置OpenGL的三维空间坐标系统后,将其X轴、Y轴与空间数据的经纬度空间坐标相一致,根据用户构造的任意海域多边形轮廓线利用GIS的方法裁剪、掩膜海表轮廓线外的区域,构建三维海洋水体表面,如图5。以平行轮廓线"投影"生成海洋水体立方体模型的主体,海洋水体柱状体X轴、Y轴平面内的尺寸取决于用户在二维电子地图中绘制的任意多边形的尺寸,海洋水体深度Z轴方向是海底地形数字高程模型的最大深度。所述的以海面波浪纹理对海表进行贴图,海底地形经由数字高程模型转换为OpenGL原语,用单一颜色渲染与多光源参数设置建模步骤利用OpenGL在顶面进行海洋波浪纹理映射,贴图的位置信息来源于二维轮廓线,因海表为任意多边形,所以采用环绕模式"镜像"重复与裁剪来"补足"海表多边形映射或裁剪纹理,把海底地形数字高程模型先转换为文本文件格式,再用OpenGL原语描述出来,从而转化成OpenGL可识别的图形函数,海底地形采用单一颜色渲染,利用光照视点位置、视线方向、光照参数设置反映高程的变化。光源和视线设置方法如下//定义一个随相机移动的移动光源staticfloat[]ambient={0.5f,0.5f,0.5f,l.Of};staticfloat[]diffUseLight={l.Of,l.Of,l.Of,l.Of};staticfloat[]specularLight={l.Of,l.Of,l.Of,l.Of};staticfloat[]lightPosition={O.Of,400.0f,200.0f,l.Of};〃初始化光源GL,glEnable(GL.GL一LIGHTING);〃设置光源GL.glLightfV(GL.GL—LIGHT0,GL.GL一AMBIENT,ambient);GL.glLightfv(GL.GL—LIGHT0,GL.GL—DIFFUSE,diffbseLight);GL.glLightfv(GL.GL—LIGHTO,GL.GL_SPECULAR,specularLight);GL.glLightfv(GLGL一LIGHTO,GL.GL一POSITION,lightPosition);GL.glEnable(GLGL_LIGHT0);〃动态设置光源函数publicstaticvoidSetLight()Vector3vec=MyView.MyCamera.getPosition();lightPosition=newfloat[]{vec.x+0.0000000100f,vec.y-0.000000003f,vec.z-0.180f,l.Of};〃视线初始化向量值Vector3zero=newVector3(0.0f,0.0f,0.0f);Vector3view=newVector3(0.0f,l.Of,0.5f);Vector3up=newVector3(0.0f,0.0f,l.Of);//Vector3为自定义的数据类型,是一个三维向量数据Position=zero;View—view;UpVector=up;〃设置视点位置publicvoidsetLook(){GL.gluLookAt(Position.x,Position.y,Position.z,View.x,View.y,View.z,UpVector.x,UpVector.y,UpVector.z);所述的由平行轮廓线"投影"和地形模拟拉伸获得海洋环境反演数据物理量横截面,透明显示海洋水体表面获得各个角度的可视化效果步骤海洋水体柱状体的侧面用来表达海洋环境反演数据随深度变化的情况,通过平行轮廓线"投影"的方式,即利用GIS的方法裁剪、掩膜海表轮廓线外的区域将海表轮廓线映射到海洋环境反演数据的各分层信息上,得到海洋环境反演数据的二维轮廓线范围内的横截面。经预处理的海洋环境栅格数据集的像素为(x,y,value),包含坐标和物理量。海洋环境栅格数据集经由文本文件转换至OpenGL原语,再由地形模拟拉伸,即将物理量值value作为高程方向Z的坐标,以数字高程模型的方式拉伸获得显著直观的分层信息。海洋水体表面采用透明显示以便从任意角度透视各分层海洋环境反演数据。实施例以2006年3月的海洋遥感温度反演数据为例,首先以文件流方式读取其头文件内的信息如下<table>tableseeoriginaldocumentpage12</column></row><table><table>tableseeoriginaldocumentpage13</column></row><table>第二、将头文件内的信息存储到元数据表中。其中,周期性产品的周期值存放在元数据表中,非周期性产品存储为0,以此数据为例,周期值为31;将儒略日转换为月和日,此处周期性产品时间记录表存储起始日期(2006-03-01)、终止日期(2006-03-31);以上时间存储对象与SQL标准中的时间类型一致,所以采用标准的SQL语言即可快速的查询出时间集合内的数据集。第三、Z轴縮放、XY轴坐标平面沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置。第四、用户在海表划定任意闭合多变形,栅格数据掩膜轮廓线以外的象元,矢量数据裁剪轮廓线以外的线段。海洋水体采用平行轮廓线"投影"的方法。将轮廓线投影至海底地形曲面,取该投影范围的曲面内水深DEM的最大谷值点,以该点构造一个平行于海表的平面。这样就构成了两相邻平行面。然后,依次连接上下轮廓线上各点形成矩形曲面。第五、纹理对象釆用二维的海面波纹BMP格式图像。在进行海表纹理映射时要确保各个顶点都指定了纹理坐标。用户在中国海区域内划定的观测区范围不定,而BMP纹理的宽度与高度固定,所以海面波纹的BMP图像的左侧、右侧以及上方、下方边缘相邻时为了达到较好的衔接效果,采用环绕模式"镜像"重复与裁剪,海表边缘不满一副纹理大小的部分利用裁剪的方式补足。第六、海底地形采用单一颜色渲染,利用OpenGL绘制三维海底地形模型之前,设置光源、视点位置、视线方向等参数。第七、同样采用试验区轮廓线构建方法获得海洋温度、盐度、透明度物理量横截面,以物理量值作为高程值,采用与地形建模相同的方式,以单一颜色和设置光源参数的方式表达出物理量的变化。由于物理量是位于体中的断面,所以体表需要设置透明度,透明度在(0,1)区间内,根据需要选择。图7是利用上述方法创建的2006年3月近南海海域海洋水体与海洋环境反演数据三维模型。这里的海洋环境数据包括了温度和透明度,采用了分层设色、按物理量拉伸的方式,利用高低起伏的地形模拟方式再现了物理量变化的趋势。权利要求1.一种海洋水体虚拟现实的建模方法,其特征在于包括如下步骤1)通过数据转换服务的方式,将原始海洋遥感环境反演数据文本格式自动转换为栅格数据集;2)对转换后的数据进行了基于时间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速查询;3)OpenGL三维海洋水体场景的空间坐标系统设定,经过Z轴缩放、坐标系沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置;4)根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线“投影”生成海洋水体立方体模型的主体;5)以海面波浪纹理对海表进行贴图,海底地形经由数字高程模型转换为OpenGL原语,用单一颜色渲染与多光源参数设置建模;6)由平行轮廓线“投影”和地形模拟拉伸获得栅格数据集物理量横截面,透明显示海洋水体表面获得各个角度的可视化效果。2.根据权利要求所述的一种海洋水体虚拟现实的建模方法,其特征在于所述的通过数据转换服务的方式,将原始海洋遥感环境反演数据文本格式自动转换为栅格数据集步骤是将原始海洋环境反演数据的Head文件头和数据体以文件流的形式读入内存,再将其按照栅格数据集的数据组织方式写入栅格数据集,利用Internet信息服务器检测目标文件夹下的数据文件,转换入库后删除源文件。3.根据权利要求所述的一种海洋水体虚拟现实的建模方法,其特征在于所述的对转换后的数据进行了基于时间可视化方式的存储,支持对海量遥感栅格数据集的时空特性进行快速查询步骤基于时间可视化方式的存储是将原始海洋环境反演数据的Head文件头中的产品周期、产品生成时间段、产品生成时间点分别保存在产品元数据表、周期性时间元数据表和瞬时性时间元数据表中,以标准的SQL时间查询语句,可快速的查询出时间集合内的数据集。4.根据权利要求所述的一种海洋水体虚拟现实的建模方法,其特征在于所述的OpenGL三维海洋水体场景的空间坐标系统设定,经过Z轴缩放、坐标系沿垂直屏幕方向向屏幕内平移、坐标系旋转以及X、Y轴坐标单位统一至经纬度坐标完成场景坐标系统设置步骤OpenGL默认的世界坐标系统的X轴、Y轴和Z轴坐标单位长度是统一的,但考虑到海洋水体数据的特征,即水平方向X坐标范围为东经180度至西经180度,Y坐标范围为北纬90度至南纬90度,而全球海洋深度由0米至-10000多米不等,X轴、Y轴方向与Z轴方向的坐标单位长度相差2倍数量级以上,则会造成Z轴方向过于陡峭,建模效果不佳,所以,将Z轴坐标的单位长度縮小为原始长度的1/100,即X轴、Y轴的1单位长度,在Z轴上100,OpenGL场景的世界坐标系统与眼坐标系统的XY轴平面是重合于屏幕平面的,所以需要将坐标系统沿垂直屏幕^"向向屏幕内平移,世界坐标系统为右手笛卡尔坐标系统,XY轴平面与屏幕平行,生成场景的海平面与屏幕相平行,这与海平面应处于水平方向的常识不符,因此,要将坐标系旋转至Z轴向上,X轴水平向右为正方向、Y轴向上为正方向。5.根据权利要求所述的一种海洋水体虚拟现实的建模方法,其特征在于所述的根据用户构造的任意海域多边形轮廓线构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体步骤:根据用户构造的任意海域多边形轮廓线,利用GIS的方法裁剪、掩膜海表轮廓线外的区域,构建三维海洋水体表面,以平行轮廓线"投影"生成海洋水体立方体模型的主体,将轮廓线沿Z轴向下平移至海底地形数字高程模型的最大深度,两平行轮廓线之间以上下轮廓线上的拐点相连利用OpenGL构造矩形面,并透明显示,海洋水体柱状体X轴、Y轴平面内的尺寸取决于用户在二维电子地图中绘制的闭合多边形的尺寸,海洋水体深度Z轴方向是海底地形数字高程模型的最大深度。6.根据权利要求所述的一种海洋水体虚拟现实的建模方法,其特征在于所述的以海面波浪纹理对海表进行贴图,海底地形经由数字高程模型转换为OpenGL原语,用单一颜色渲染与多光源参数设置建模步骤利用OpenGL在顶面进行海洋波浪纹理映射,贴图的位置信息来源于二维轮廓线,因海表为任意多边形,所以采用环绕模式"镜像"重复与裁剪来"补足"海表多边形映射或裁剪纹理,把海底地形数字高程模型先转换为文本文件格式,再用OpenGL原语描述出来,从而转化成OpenGL可识别的图形函数,海底地形采用单一颜色渲染,利用光照视点位置、视线方向、光照参数设置反映高程的变化。7.根据权利要求所述的一种海洋水体虚拟现实的建模方法,其特征在于所述的由平行轮廓线"投影"和地形模拟拉伸获得栅格数据集物理量横截面,透明显示海洋水体表面获得各个角度的可视化效果步骤海洋水体柱状体的侧面用来表达海洋环境反演数据随深度变化的情况,通过平行轮廓线"投影"的方式将海表轮廓线映射到海洋环境反演数据的各分层信息上,得到海洋环境反演数据的二维轮廓线范围内的横截面,经预处理的海洋环境栅格数据集的像素为(x,y,value),其中包含坐标和物理量,海洋环境栅格数据集经由文本文件转换至OpenGL原语,再由地形模拟拉伸,即将物理量值value作为高程方向Z的坐标,以数字高程模型的方式拉伸获得直观的分层信息,海洋水体表面采用透明显示以便从任意角度透视各分层海洋环境反演数据。全文摘要本发明公开了一种海洋水体虚拟现实的建模方法。利用RS(遥感)数据通过方便、高效的数据处理过程和科学存储方式,并以OpenGL技术构建模型的主体,采用海表试验区轮廓线构建三维海洋水体的立体建模方法,由纹理映射表现海面波浪,利用平行轮廓线“投影”构造水体柱状体来表达RS数据的水深和水质等物理量变化情况,以体透明的方式再现了海洋水体和海底地形。本发明是在RS和GIS(地理信息系统)技术支持下,利用OpenGL作为建模工具实现三维海洋水体建模的新方法。本发明有效的利用了长期积累的RS资料,经过方便可行的数据处理,通过以上的模型绘制方法来实现三维海洋水体实时建模。本发明在海洋环境监测领域中应用前景非常广泛。文档编号G06T17/00GK101650837SQ200910100669公开日2010年2月17日申请日期2009年7月16日优先权日2009年7月16日发明者南刘,刘仁义,丰张,昭李,杜震洪,黄克玲申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1