基于地球球体模型的海洋标量场体绘制方法

文档序号:6536292阅读:198来源:国知局
基于地球球体模型的海洋标量场体绘制方法
【专利摘要】本发明公开的基于地球球体模型的海洋标量场体绘制方法,具体包括以下步骤按:采用由六个网格面组成的弧形体代替立方体作为代理几何体;将弧形体组成的代理几何体,在光线投射过程中加以坐标变换,将光线投射的路径从世界坐标转化为经纬高坐标;通过可视化效果动态变化的“多线程预加载”,和弧形体的“LOD渲染”方法提高动态渲染的帧率;采用着色语言GLSL在GPU上实现基于球体模型的光线投射体绘制算法。本发明经过坐标变换,绘制体可精确贴于地球表面,且数据与陆地的交界比较准确,具有可视化效果好,渲染效率高的特点,同时具有良好的可扩展性。
【专利说明】基于地球球体模型的海洋标量场体绘制方法
【技术领域】
[0001]本发明涉及一种海洋标量场体绘制方法,尤其涉及一种基于地球球体模型的海洋标量场体绘制方法。
【背景技术】
[0002]海洋水体的可视化是“数字海洋”研究的一项重要内容,三维数据场的体绘制是海洋水体可视化的重点和难点。
[0003]球体模型系统是目前GIS领域的研究热点,它以强大的空间数据管理能力,丰富直观的信息表现能力迅速成为空间信息集成共享的有力平台,是“数字地球”、“数字海洋”的构建基础。海洋水体数据结构复杂,数据模式导出的海洋水体三维场数据具有经度、维度和深度三个维度,数据范围跨度大和空间分辨率的提高会导致数据量激增,且深度往往具有不规则分布的特点,导致基于球体模型对海洋水体可视化表达困难。
[0004]目前,国内外基于地球球体模型实现海洋水体可视化的案例有:G00gle于2009年初推出了 Google Ocean,是对陆地的延伸,虽然可以大范围的展现海底地形,但没有实现对海洋水体要素的可视化表达;还有一些,例如软件在海面模拟、海洋信息可视化方面作了一些尝试,但没有涉及三维水体可视化;“数字海洋”原型系统采用的三维水体可视化表达采用插件的形式进行集成,其结果是平面三维可视化,不能与地球球体模型进行很好的融合。
[0005]因此,现有技术存在缺陷,有待于进一步改进和发展。

【发明内容】

[0006]本发明的目的在于提供一种基于地球球体模型的海洋标量场体绘制方法,以适用于地球上任意范围的海洋三维网格标量场数据。
[0007]本发明的技术方案如下:
[0008]基于地球球体模型的海洋标量场体绘制方法,具体包括以下步骤
[0009]步骤A、采用由六个网格面组成的弧形体代替立方体作为代理几何体;
[0010]步骤B、将弧形体组成的代理几何体,在光线投射过程中加以坐标变换,将光线投射的路径从世界坐标转化为经纬高坐标;
[0011]步骤C、通过可视化效果动态变化的“多线程预加载”,和弧形体的“L0D渲染”方法提高动态渲染的帧率;
[0012]步骤D、采用着色语言GLSL在GPU上实现基于球体模型的光线投射体绘制算法。
[0013]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述步骤B弧形体的选择与给地壳定球体的曲率相同,将体数据压缩到选定的弧形体中。
[0014]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述步骤C中多线程预加载制定一个内外存调度预测机制,将当前需要使用的数据及其相邻时刻的若干数据读取进内存的缓存区域,并把距离较远时刻的数据清理出缓存。
[0015]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述弧形体的“L0D渲染”分三次进行渲染,包括第一次渲染、第二次渲染和第三次渲染。
[0016]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述第一次渲染是将弧形体的背面像素坐标采用RTT的方式渲染到一个与窗口同等大小的纹理中,所用到的纹理为四通道浮点型纹理,在片元着色器将各个片元的世界坐标位置当做片元的颜色输出,得到一副保存有片元坐标的纹理。
[0017]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述第二次渲染渲染几何体的正面,以第一次渲染时得到的背面片元位置图作为输入纹理,在片元着色器中获取当前片元的世界坐标,并根据其屏幕坐标去输入纹理中取出对应的背面世界坐标。
[0018]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述世界坐标转化为经纬高坐标,分两步进行转化:
[0019]步骤1、首先根据公式⑷(5) (6)将世界坐标转化为经纬高坐标,其中XYZ代表采样点的世界坐标,1n, lat, alt分别代表经纬高坐标:
[0020]lon=arctan (y/x)
[0021 ] lat=arctan (U/V)
[0022]alt=p/cos (lat) -N (4)
[0023]其中U、V、p、N分别代表:
[0024]p = ^lx2 +Y2
[0025]N -re!^/l.0-es*sin(to)2`[0026]U=Z+ds*rp*sin (theta)3
[0027]V=p_es*re*cos (theta)3(5)
[0028]其中re, rp分别代表地球的赤道半径和两极半径,ds、theta的计算公式如下:
[0029]ds= (re2-rp2) /rp2
[0030]theta=arctan (Z*re/ (p*rp))(6);
[0031]步骤2、进而利用公式(7)将经纬高坐标转化范围为0-1的纹理坐标:
[0032]S=(lon-minlon)/(maxlon-minlon)
[0033]t= (lat-minlat)/(maxlat-minlat)
[0034]r=(alt-minalt)/(maxalt-minalt)(7)
[0035]其中minion, max I on, minlat, max I at分别代表给定的经讳高范围,S、t、r分别代
表纹理三个维度的坐标。
[0036]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述步骤D中:采用线性传递函数做颜色值映射,按照数据大小在一个颜色表中线性取值。
[0037]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述第三次渲染为直接将第二次的渲染结果渲染到屏幕上。
[0038]所述的基于地球球体模型的海洋标量场体绘制方法,其中,所述弧形体的“L0D渲染”还包括以下步骤:当视点静止超过三帧之后就假定在未来一段时间内不会再移动,进行一次精细的光线投射,并将渲染结果保存在纹理中供后续帧使用。
[0039]与现有技术相比,本发明提供了基于地球球体模型的海洋标量场体绘制方法,经过坐标变换,绘制体可精确贴于地球表面,且数据与陆地的交界比较准确,具有可视化效果好,渲染效率高的特点,同时具有良好的可扩展性。
【专利附图】

【附图说明】
[0040]图1为现有技术传统光线投射算法的示意图;
[0041]图2为本发明基于球体模型的海洋三维标量场数据可视化算法流程;
[0042]图3为数据读取及纹理生成线程流程图;
[0043]图4为本发明由六个网格面组成的弧形体的结构示意图;
[0044]图5为本发明弧形体的光线投射体绘制算法。
【具体实施方式】
[0045]下面结合附图,对本发明的较佳实施例作进一步详细说明。
[0046]本发明提供的基于地球球体模型的海洋标量场体绘制方法:
[0047]I)采用由六个网格面组成的弧形体代替立方体作为代理几何体改进了传统的光线投射算法,该立方体是指传统光线投射算法的代理几何体。通过将传统算法中的立方体代理几何体改为指定半径、经纬度范围和厚度的球面代理几何体,在光线投射过程中加以坐标变换,将光线投射的路径从世界坐标转化为经纬高坐标,以此实现在体数据中的正确取值与累加,最终实现基于球体模型的海洋标量场数据可视化。
[0048]2)提出可视化效果动态变化的“多线程预加载”,和弧形体的“L0D渲染”方法提高动态渲染的帧率。为了实现可视化效果的动态变化,采用缓存管理的方式将当前时刻邻近的数据保持在内存中,在动态变化时可以以最快的速度切换数据,同时根据预测机制以多线程方式将可能用到的数据提取读取进缓存区域并释放很久未用的区域,以此实现多时刻数据的动态切换。为了减少光线投射算法的迭代步骤以及减少不必要的计算,采用RTT(渲染到纹理)技术,以三次渲染的方式实现“L0D渲染”模式,在视点移动时仅进行粗糙计算(即增大光线投射过程的采样步长),在视点停止时进行精确绘制,在不影响显示效果的情况下能大幅度减少计算量。
[0049]3)米用着色语言GLSL在GPU (Graphic Processing Unit,图形处理器)上实现基于球体模型的光线投射体绘制算法。
[0050]本发明中的体数据:是对一种数据类型的描述,只要是包含了内部细节的数据,都可以称之为体数据。本发明中体数据是一种海洋三维网格场数据,每个网格点对应一个数据值,将该数值按照经度、纬度、深度的顺序存放的二进制文件。
[0051]本发明中的体素:是组成体数据的最小单元,一个体素表示体数据中三维空间某部分的值。通常体数据都会有一个体素分布的描述,即,该数据由n*m*t个体素组成,表示该体数据在X、Y、Z方向上分别有n、m、t个体素。在数据表达上,体素代表三维数组中的一个单元。假设一个体数据在三维空间上256*256*256个体素组成,则,如果用三维数组表示,就必须在每一维上分配256个空间。
[0052]本发明中的体纹理:即三维纹理,是传统2D纹理在逻辑上的扩展。二维纹理是一张简单的位图图片,用于为三维模型提供表面点的颜色值;而一个三维纹理,可以被认为由很多张2D纹理组成的,用于描述三维空间数据的图片。三维纹理通过三维纹理坐标进行访问。[0053]首先介绍一下传统光线投射算法,光线投射算法是从屏幕图像的每一个像素,沿固定方向发出一条光线,称投射光线,这条光线穿过三维体数据集,对与投射光线相交的n个等间距的体数据点进行重采样,并对重采样点采用从前向后或从后往前的方式进行颜色混合,将混合后的颜色作为该像素的最终颜色值,从而实现三维重建。
[0054]如图1所示,假定光线从f点投射到立方体中,并从I点投出,在立方体中穿越的距离为m。当光线从f点投射到立方体中,穿越距离为n(n<m)时进行采样,则存在公式:
[0055]t=tstart+d*delta (I)
[0056]其中tstart表示立方体表面被投射点的体纹理坐标;d表示投射方向;delta表示采样间隔,随着n的增加而递增;t为求得的采样纹理坐标。通过求得的采样纹理坐标就可以在体纹理上查询体素数据直到11 > m,或者透明度累加超过1,一条射线的采样过程才结束。其中,颜色与透明度的累加公式如下:
【权利要求】
1.基于地球球体模型的海洋标量场体绘制方法,具体包括以下步骤 步骤A、采用由六个网格面组成的弧形体代替立方体作为代理几何体; 步骤B、将弧形体组成的代理几何体,在光线投射过程中加以坐标变换,将光线投射的路径从世界坐标转化为经纬高坐标; 步骤C、通过可视化效果动态变化的“多线程预加载”,和弧形体的“LOD渲染”方法提高动态渲染的帧率; 步骤D、采用着色语言GLSL在GPU上实现基于球体模型的光线投射体绘制算法。
2.根据权利要求1所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述步骤B弧形体的选择与给地壳定球体的曲率相同,将体数据压缩到选定的弧形体中。
3.根据权利要求2所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述步骤C中多线程预加载制定一个内外存调度预测机制,将当前需要使用的数据及其相邻时刻的若干数据读取进内存的缓存区域,并把距离较远时刻的数据清理出缓存。
4.根据权利要求3所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述弧形体的“LOD渲染”分三次进行渲染,包括第一次渲染、第二次渲染和第三次渲染。
5.根据权利要求4所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述第一次渲染是将弧形体的背面像素坐标采用RTT的方式渲染到一个与窗口同等大小的纹理中,所用到的纹理为四通道浮点型纹理,在片元着色器将各个片元的世界坐标位置当做片元的颜色输出,得到一副保存有片元坐标的纹理。
6.根据权利要求5所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述第二次渲染渲染几何体的正面,以第一次渲染时得到的背面片元位置图作为输入纹理,在片元着色器中获取当前片元的世界坐标,并根据其屏幕坐标去输入纹理中取出对应的背面世界坐标。
7.根据权利要求6所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述世界坐标转化为经纬高坐标,分两步进行转化: 步骤1、首先根据公式(4) (5) (6)将世界坐标转化为经纬高坐标,其中XYZ代表采样点的世界坐标,1n, lat, alt分别代表经纬高坐标:lon=arctan (y/x)lat=arctan(U/V)alt = p/cos(lat)-N (4) 其中U、V、p、N分别代表:
8.权利要求7所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述步骤D中:采用线性传递函数做颜色值映射,按照数据大小在一个颜色表中线性取值。
9.权利要求8所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述第三次渲染为直接将第二次的渲染结果渲染到屏幕上。
10.权利要求9所述的基于地球球体模型的海洋标量场体绘制方法,其特征在于,所述弧形体的“L0D渲染”还包括以下步骤:当视点静止超过三帧之后就假定在未来一段时间内不会再移动,进行一次精 细的光线投射,并将渲染结果保存在纹理中供后续帧使用。
【文档编号】G06T15/08GK103761761SQ201410025715
【公开日】2014年4月30日 申请日期:2014年1月21日 优先权日:2014年1月21日
【发明者】刘健, 范湘涛, 张继凯 申请人:中国科学院遥感与数字地球研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1