数字地球地形约束下的体绘制渲染优化方法转让专利

申请号 : CN202111590408.5

文献号 : CN114511659B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王家润李志强杨胜利田壮任菲黄志敏王凯

申请人 : 中国电子科技集团公司第十五研究所中国人民解放军国防大学国家安全学院

摘要 :

本发明公开了一种数字地球地形约束下的体绘制渲染优化方法。本发明通过构建代理椭球面几何体、数据椭球壳立体网格、数字地球椭球体和地形高程椭球壳立体网格,通过跳过光线采样点或提早终止光线采样(剔除了地形高程遮挡的采样点),极大减少了光线采样中实际需要处理的采样点数量,从而极大减少后续的三线性插值等复杂计算;同时,将弧状的数据椭球壳立体网格、地形高程椭球壳立体网格转换为长方体形式,利用GPU的高效纹理查询功能快速实现采样点的三线性插值,最终整体上提升了面向数字地球的体绘制渲染性能。

权利要求 :

1.一种数字地球地形约束下的体绘制渲染优化方法,其特征在于,包括如下步骤:步骤1,构建代理椭球面;所述代理椭球面为与数字地球椭球面相似的扩大椭球面;

步骤2,构建数据椭球壳立体网格;所述数据椭球壳立体网格即将待显示的三维离散数据采用经纬高坐标系进行数据重建获得;

步骤3,构建地形高程椭球壳立体网格;所述地形高程椭球壳立体网格的网格与数据椭球壳立体网格相同,地形高程椭球壳立体网格的网格数据默认设置为0,然后沿数据椭球壳立体网格从高到低方向构造直线,与数字地球三维场景进行碰撞检测,获得碰撞交点,然后沿碰撞交点从低到高的高度方向,低于或等于碰撞交点的格点数据设置为1,将高于碰撞交点的第一个格点数据设置为1,将高于碰撞交点的其它格点数据设置为0;

步骤4,采用光线投射算法进行绘制,具体包括:

步骤S1,若光线与代理椭球面没有交点或只有一个交点,则跳过该光线,执行步骤S4;

若有2个交点,则执行步骤S2;

步骤S2,判断该光线是否与数字地球椭球面相交,若没有交点或只有一个交点,则光线与代理椭球面的2个交点作为光线采样的起始点和终止点,执行步骤S3;若有两个交点,则光线与代理椭球面的第一个交点作为光线采样的起始点,光线与数字地球椭球面的第一个交点作为光线采样的终止点,执行步骤S3;

步骤S3,以设定的步长沿光线进行采样,若采样点位于数据椭球壳立体网格外,则设置该采样点数据为0;若采样点位于数据椭球壳立体网格内,且未被地形高程遮挡,则对采样点进行三线性插值,获得采样点的颜色值和不透明度;若采样点被地形高程遮挡,则终止该光线上的采样;

合成该光线上各采样点的颜色值和不透明度,获得该光线所对应的屏幕像素点的颜色值和透明度,执行步骤S4;

其中,判断采样点是否被地形高程遮挡的方式为:

首先将地形高程椭球壳立体网格的格点数据沿经纬高方向排列,构建出一个0‑1值的三维长方体,该长方体即为地形高程椭球壳立体网格三维纹理长方体;然后基于GPU的纹理查询功能,对采样点所对应的地形高程椭球壳立体网格三维纹理长方体的格点进行纹理查询,如果该值小于或等于设定阈值A=0.5,则该采样点未被地形高程遮挡,否则表示该采样点被地形高程遮挡;

采样点三线性插值的方式为:

首先将数据椭球壳立体网格的格点数据按经纬高三个方向排列,构建出一个基于格点数据的长方体,所述长方体格点的长宽高即为数据椭球壳立体网格格点的三维纹理,所述长方体即为数据椭球壳立体网格的三维纹理长方体;然后基于GPU的纹理查询功能,对采样点所对应的三维纹理长方体的格点进行纹理查询,通过该点周围格点的数据,获得插值数据;利用该插值数据实现了对采样点的三线性插值;

步骤S4,提取下一条光线执行步骤S1,直到所有光线均采样完毕。

2.如权利要求1所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,所述步骤3中格点数据设置采用并行计算的方式进行处理。

3.如权利要求2所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,采用基于CPU多核的OpenMP并行编程接口进行并行计算。

4.如权利要求1所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,所述步骤S3中,设定阈值A为0.5。

5.如权利要求1所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,所述数据椭球壳立体网格地理范围为局部的或全球的。

6.如权利要求1所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,对代理椭球面进行三角网格化,并删去地球背面三角面片。

7.如权利要求1所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,采用光线投射算法进行绘制的具体方式如下:以屏幕上的每一个像素点为起点,沿着视线的方向发出一条光线;沿光线进行采样;通过传递函数,将采样点的数值转换为颜色值和不透明度;将这些采样点进行合成,获得该光线所对应的屏幕像素点的颜色值与透明度。

8.如权利要求7所述的数字地球地形约束下的体绘制渲染优化方法,其特征在于,顺着光线的方向按照从前向后或从后向前的顺序将这些采样点合成。

说明书 :

数字地球地形约束下的体绘制渲染优化方法

技术领域

[0001] 本发明涉及可视化技术领域,具体涉及一种数字地球地形约束下的体绘制渲染优化方法。

背景技术

[0002] 数字地球越来越普及,已有各种三维实现版本,例如,Google Earth,NASA World Wind,ESRI Globe,AGI Cesium等。针对自然环境要素:气象、电磁等,基于数字地球进行数据可视化,目前在实际应用中需求非常迫切。在各种可视化算法中,光线投射体绘制是其中一种比较著名的可视化方法,应用于医学、气象、航空、电磁、测绘等各种领域。该方法面向三维数据标量场,可提供透视场的内部及外部信息的显示方法,提供可视分析,辅助相关的各类决策。
[0003] 目前数字地球上的体绘制在近地面显示时,起伏变化的数字地球表面地形高程对其有较大的影响。在雷达探测的地形遮蔽分析中,传统方法主要采用计算几何的方法,首先采用计算几何进行与地形相交检测,再进行局部修改,修改被地形遮挡的网格,从而构建出新的三维包络网格,并对这个网格进行显示,其中修改处理的计算量还是比较大。因此,研究基于数字地球高程影响的体绘制优化技术,实现体绘制地形高程约束下的显示,具有重要的意义。

发明内容

[0004] 有鉴于此,本发明提供了一种数字地球地形约束下的体绘制渲染优化方法,能够在数字地球表面上地形高程遮挡下进行快速有效的体绘制渲染。
[0005] 本发明的数字地球地形约束下的体绘制渲染优化方法,包括如下步骤:
[0006] 步骤1,构建代理椭球面;所述代理椭球面为与数字地球椭球面相似的扩大椭球面;
[0007] 步骤2,构建数据椭球壳立体网格;所述数据椭球壳立体网格即将待显示的三维离散数据采用经纬高坐标系进行数据重建获得;
[0008] 步骤3,构建地形高程椭球壳立体网格;所述地形高程椭球壳立体网格的网格与数据椭球壳立体网格相同,地形高程椭球壳立体网格的网格数据默认设置为0(没有地形高程影响),进一步处理如下:沿数据椭球壳立体网格从高到低方向构造直线,与数字地球三维场景进行碰撞检测,获得碰撞交点,然后沿碰撞交点从低到高的高度方向,低于或等于碰撞交点的格点数据设置为1(完全被地形遮挡),将高于碰撞交点的第一个格点数据设置为1(因为部分被地形遮挡),将高于碰撞交点的其它格点数据设置为0;
[0009] 步骤4,采用光线投射算法进行绘制,具体包括:
[0010] 步骤S1,若光线与代理椭球面没有交点或只有一个交点,则跳过该光线,执行步骤S4;若有2个交点,则执行步骤S2;
[0011] 步骤S2,判断该光线是否与数字地球椭球面相交,若没有交点或只有一个交点,则光线与代理椭球面的2个交点作为光线采样的起始点和终止点,执行步骤S3;若有两个交点,则光线与代理椭球面的第一个交点作为光线采样的起始点,光线与数字地球椭球面的第一个交点作为光线采样的终止点,执行步骤S3;
[0012] 步骤S3,以设定的步长沿光线进行采样,若采样点位于数据椭球壳立体网格外,则设置该采样点数据为0;若采样点位于数据椭球壳立体网格内,且未被地形高程遮挡,则对采样点进行三线性插值,获得采样点的颜色值和不透明度;若采样点被地形高程遮挡,则终止该光线上的采样;
[0013] 合成该光线上各采样点的颜色值和不透明度,获得该光线所对应的屏幕像素点的颜色值和透明度,执行步骤S4;
[0014] 其中,判断采样点是否被地形高程遮挡的方式为:
[0015] 首先将地形高程椭球壳立体网格的格点数据沿经纬高方向排列,构建出一个0‑1值的三维长方体,该长方体即为地形高程椭球壳立体网格三维纹理长方体;然后基于GPU的纹理查询功能,对采样点所对应的地形高程椭球壳立体网格三维纹理长方体的格点进行纹理查询,如果该值小于或等于设定阈值A=0.5,则该采样点未被地形高程遮挡,否则表示该采样点被地形高程遮挡;
[0016] 采样点三线性插值的方式为:
[0017] 首先将数据椭球壳立体网格的格点数据按经纬高三个方向排列,构建出一个基于格点数据的长方体,所述长方体格点的长宽高即为数据椭球壳立体网格格点的三维纹理,所述长方体即为数据椭球壳立体网格的三维纹理长方体;然后基于GPU的纹理查询功能,对采样点所对应的三维纹理长方体的格点进行纹理查询,通过该点周围格点的数据,获得插值数据;利用该插值数据实现了对采样点的三线性插值;
[0018] 步骤S4,提取下一条光线执行步骤S1,直到所有光线均采样完毕。
[0019] 进一步的,所述步骤3中格点数据设置采用并行计算的方式进行处理。
[0020] 进一步的,采用基于CPU多核的OpenMP并行编程接口进行并行计算。
[0021] 进一步的,所述步骤S3中,设定阈值A为0.5。
[0022] 进一步的,所述数据椭球壳立体网格地理范围为局部的或全球的。
[0023] 进一步的,对代理椭球面进行三角网格化,并删去地球背面三角面片。
[0024] 进一步的,采用光线投射算法进行绘制的具体方式如下:
[0025] 以屏幕上的每一个像素点为起点,沿着视线的方向发出一条光线;沿光线进行采样;通过传递函数,将采样点的数值转换为颜色值和不透明度;将这些采样点进行合成,获得该光线所对应的屏幕像素点的颜色值与透明度。
[0026] 进一步的,顺着光线的方向按照从前向后或从后向前的顺序将这些采样点合成。
[0027] 有益效果:
[0028] 本发明通过构建代理椭球面几何体、数据椭球壳立体网格、数字地球椭球体和地形高程椭球壳立体网格,通过跳过光线采样点或提早终止光线采样,极大减少了光线采样中实际需要处理的采样点数量,从而极大减少后续的三线性插值等复杂计算;同时,将弧状的数据椭球壳立体网格、地形高程椭球壳立体网格转换为长方体三维纹理,利用GPU的高效纹理查询功能获得采样点的三线性插值,从而整体上提升了面向数字地球的体绘制渲染性能。
[0029] 本发明构建的代理椭球面、椭球的数据立体网格以及椭球的地形高程椭球壳立体网格,突破了传统的长方体、球等形状的代理几何体的思路,更拟合实际的地球形状。
[0030] 本发明将弯曲的数据立体网格和地形高程立体网格变为规整的长方体结构,然后在长方体上基于GPU纹理查询功能,快速实现了采样点在弯曲网格上的三线性插值,有效解决了弯曲网格的三线性插值难题。
[0031] 本发明还考虑了高程、地球对于光线的遮挡问题,当数据椭球壳立体网格被高程遮挡后,高程后的数据全被优化过滤掉,而当绘制地理范围覆盖全球时,地球背面的数据同样被优化过滤掉,从而可实现高效的全球地理范围的体绘制渲染。

附图说明

[0032] 图1为光线投射算法原理示意图。
[0033] 图2为数据椭球壳立体网格示意图。
[0034] 图3为数据椭球壳立体网格包围盒示意图。
[0035] 图4为数据椭球壳立体网格三维纹理直角长方体示意图。
[0036] 图5为地形高程椭球壳立体网格三维构建示意图。
[0037] 图6为代理椭球面几何体示意图。
[0038] 图7为光线采样过程中地形遮挡下的提早终止剖面示意图。
[0039] 图8为数字地球地形高程约束下的体绘制光线采样优化流程图。

具体实施方式

[0040] 下面结合附图并举实施例,对本发明进行详细描述。
[0041] 本发明提供了一种数字地球地形约束下的体绘制渲染优化方法,通过地形高程三维纹理进行纹理查询,该纹理查询基于GPU高效执行,基于查询出的纹理值,对受地形影响的采样点进行提早终止剔除,从而保证正确的体绘制显示,具有较高的显示性能。
[0042] 具体包括:
[0043] (1)光线投射体绘制算法
[0044] 如图1所示,光线投射(Ray‑casting)算法是一种面向图像的直接体绘制算法:以屏幕上的每一个像素点为起点,沿着视线的方向发出一条射线;沿光线穿过体数据包围盒的路径上进行离散化的数据的插值采样,通过传递函数,将三线性插值求得的各采样点的数值转换为颜色值和不透明度;顺着光线的方向按照从前向后或从后向前的顺序将这些采样点(右侧点)合成,计算出该光线所对应的屏幕像素点(左侧点)的颜色值与透明度。从采样过程中可看出,光线采样点的数量较多,进而导致三线性插值计算量较大(每个三线性插值,包含七次线性插值计算,计算量很大)。因此,尽量减少光线采样中的无效采样点数,是体绘制中提升性能的关键。
[0045] (2)数据椭球壳立体网格、包围盒及三维纹理
[0046] 数字地球多数采用WGS‑84坐标系,其基础参考是一个椭球曲面。因为地球采用椭球描述,所以,本发明需要对三维数据场采用经纬高进行三维数据重建。在三维空间中,本发明重新构建一个沿经纬高三个方向的立体网格,各格点的数据通过对原始的三维数据场进行三线性插值计算得到,各格点的位置采用椭球经纬高LBH描述,经度在范围[‑π,π]之内,纬度在范围[‑π/2,π/2]之内,这个网格包含了原始显示数据。本发明称这个新的数据网格为数据椭球壳立体网格,如图2所示,这是一个在三维空间内弯曲的三维离散网格,其弯曲拟合地球,地理范围既可以是局部的,也可以是全球的。另外,数据椭球壳立体网格包围盒由外轮廓网格构成,该包围盒给出了数据的经纬高三个方向的地理范围,参见对应的图3,该数据椭球壳立体网格包围盒在光线采样过程中可加速无效数据的剔除,是提升光线采样效率的关键。
[0047] 将数据椭球壳立体网格的格点数据按经纬高三个方向排列,构建出一个基于格点数据的长方体,如图4所示,该长方体的长宽高为经纬高三个方向的网格点数,作为光线投射体绘制中的三维纹理,称之为数据椭球壳立体网格三维纹理。在光线采样过程中,采样点所在位置处的数据是对数据椭球壳立体网格进行三线性插值计算得到的,因为一般采样点较多,而且三线性插值计算量较大,对体绘制性能影响巨大。GPU提供了纹理查询功能,该功能基于GPU硬件,实现了对给定的位置点处(经纬高LBH描述)的数据(或通过纹理查询经纬高得到的值)的高效三线性插值(或三维纹理查询)。因为本发明的数据椭球壳立体网格是按照椭球经纬高组织成三维纹理,并且基于椭球经纬高信息进行三维纹理查询,实现对给定位置(椭球经纬高描述)处数据的三线性插值计算,从几何上来看,对应地完成了对数据椭球壳立体网格沿经纬高的三线性插值(其中要计算七次插值,计算量较大),因此,本发明将这种三线性插值称之为椭球三线性插值,这是面向数字地球的体绘制高效渲染的关键。
[0048] 图4为本发明按照经纬高次序将左侧的数据椭球壳立体网格格点中的数据组织成的三维纹理长方体。在三维纹理中查询纹理坐标(Lt,Bt,Ht)处的值,即在三维纹理中基于该位置附近的八个点(小球),进行纹理查询(纹理空间中直角坐标系下的三线性插值),该纹理值对应的数据椭球壳立体网格包围盒中三维空间坐标(L,B,H)处的显示数值(可通过变换计算出)。这样,本发明就通过基于GPU硬件加速的简洁的、直方体的三维纹理查询,完成了复杂的、空间弯曲的数据椭球壳立体网格包围盒中的椭球三线性插值,使计算复杂度得到极大减少。
[0049] (3)地形高程椭球壳立体网格、包围盒及三维纹理
[0050] 本发明基于上述数据椭球壳立体网格,构建地形高程椭球壳立体网格及三维纹理,参看图5。整个过程如下:第一阶段:将数据椭球壳立体网格复制,构成一个新的立体网格:地形高程椭球壳立体网格,并可构建出地形高程椭球壳立体网格包围盒,格点的三维空间位置采用LBH描述。第二阶段:新网格格点数据设置:遍历最上层各个格点(A,B,C等)的经纬位置信息,采用过该点的高程直线与数字地球三维场景进行碰撞检测,计算出直线与地形表面的交点(图5中小方块标识),将该点转换为经纬高描述,读出该点的海拔高度H,沿高程直线遍历网格点(图中直线,从低到高方向),低于或等于这个高度的格点(灰色,方块下面),其数值设置为1;高于这个高度的第一个格点(黑色,方块上面),其数值设置为1,将高于这个高度的其它格点数据设置为0。第三阶段:基于该网格,沿经纬高方向将格点数据依次排列,构建出一个0‑1值的三维长方体,这个长方体的长宽高大小与数据椭球壳立体网格对应的各方向的格点数相同,这个长方体被称为地形高程椭球壳立体网格三维纹理。地形高程椭球壳立体网格中的每个格点(经纬高坐标:(L,B,H))都与对应的地形高程椭球壳立体网格三维纹理中的一个纹理格点(纹理坐标:(s,t,r))对应。
[0051] 其中,在第二阶段中,因为表面上各格点之间相互独立,本发明将采用并行计算进行处理,采用基于CPU多核的OpenMP并行编程接口,可并行化求取地球表面交点,从而提升地形高程立体网格三维离散化的计算性能。另外,在第一阶段中,复制一个与数据相同的网格作为研究基础,主要是重点关心受地形影响的数据部分,本发明忽略不对数据产生影响的高程。
[0052] 地形高程椭球壳立体网格三维纹理的应用:针对地形高程椭球壳立体网格三维纹理,任意给定纹理坐标(s,t,r),进行纹理查询(或纹理三线性插值),查询出与该纹理坐标对应的纹理值,如果该值小于或等于0.5,与该纹理坐标(s,t,r)对应的地形高程椭球壳立体网格包围盒中的三维空间点(LBH描述)没有被地形高程遮挡,否则表示三维空间中的点被地形高程遮挡。
[0053] (4)代理椭球面几何体三维构建
[0054] 代理几何体主要是实现体绘制绘制的几何载体,附加包含顶点着色器、片元着色器,关联三个纹理:地形高程椭球壳立体网格三维纹理、数据椭球壳立体网格三维纹理、传递函数一维纹理。在着色器中完成沿光线采样的椭球三线性插值及数据到颜色的传递函数变换处理,这两个关键的处理,通过GPU纹理查询接口高效实施,关联的纹理:数据椭球壳立体网格三维纹理,及传递函数映射颜色表一维纹理。其中,在着色器中也完成地形高程遮挡的判断,通过GPU纹理查询地形高程椭球壳立体网格三维纹理。因为显示数据的地理范围可能超过半球,所以,本发明采用与地球参考椭球相似(椭球的三个短半轴a,b,c对应成比例)的扩大的椭球作为代理椭球几何体,并进行三角网格化,如图6所示,为提升显示性能,可对地球背面三角面片采用背面剔除策略优化。同时,该代理椭球面几何体在光线采样过程中可确定光线采样的开始点及结束点,通过优化采样范围,可加快采样过程,对性能优化将起到关键作用。
[0055] (5)基于地形高程的光线采样提早终止优化策略
[0056] 光线采样是体绘制中耗时最长的环节,因此,本发明重点优化该部分,参考图7和图8,其中,不规整实线为数字地球表面上的地形高程剖面折线,即地形高程椭球壳立体网格与数字地球三维场景的碰撞交点的连线,计算出直线与地形表面的交点。本发明先用代理椭球面几何体过滤,得到采样初始及结束点(三角形标识)。参看射线M,如果有两个交点,则这两个采样点(三角形标识),第一个是采样开始点,第二个为采样结束点,通过这两个点,本发明控制采样的范围。本发明则继续判断是否与数字地球椭球面是否相交,如果没有交点,参见射线M,则沿M1开始采样,M4为采样结束点,此时,再用数据椭球壳立体网格包围盒(经纬高范围)进一步过滤采样点,只有在该数据椭球网格包围盒内的,比如,在M2及M3之间的采样点,才进行实际计算(M1及M2之间的采样点或M3之后的采样点跳过,不进行实际计算),针对每个采样点,首先,判断该点处的地形高程遮挡情况:获取其位置(L,B,H)(经纬高描述),变换为对应的地形高程椭球壳立体网格三维纹理中的纹理坐标(s,t,r),采用GPU提供的纹理查询,从地形高程椭球壳立体网格三维纹理中查询出对应的纹理值,如果该值大于0.5,表示该点被地形高程遮挡(黑色方块标识,即数据椭球壳立体网格包围盒中对应的三维空间点被地面高程遮挡),则从该采样点以后,提早终止该方向上的后续采样(黑色方块以后的采样点,开始变灰色)。其次,如果小于等于0.5,表示该点不被地形高程遮挡,则使用基于GPU的纹理查询,从数据椭球壳立体网格三维纹理中,经过纹理查询(或纹理三线性插值)计算出该纹理坐标下的纹理数值,并将该点对应变换为数据椭球壳立体网格包围盒中对应点的插值数据,通过传递函数,将该插值数据转换为与之对应的颜色。针对光线N,与数字地球有两个交点,则从第一个交点后(左侧白色方块标识),因为受地球遮挡的影响,后面的采样将提早终止,其它过程与M的处理类似。从上述可看出,沿光线采样过程中,如果某点是被地形高程遮挡,与地球背面采样点被地球遮挡类似,可提早终止该方向上的后续采样。通过上述提早终止采样的策略,可较好地优化体绘制显示性能,并得到符合客观实际的、正确的体绘制显示。
[0057] 本发明首次提出了一种地形高程椭球壳立体网格、包围盒及三维纹理构建方法,及体绘制光线采样基于地形高程三维纹理的提早终止策略,给出了数字地球表面上地形高程遮挡下的体绘制正确渲染方法及性能优化解决方案。
[0058] 本发明可为基于数字地球的环境中的雷达电磁、气象水文等三维标量数据场的高性能内部及外部三维显示,提供关键基础技术支撑,具有重要的工程价值。
[0059] 综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。