一种基于位置和视线的地景动态加载卸载方法技术

技术编号:34525654 阅读:26 留言:0更新日期:2022-08-13 21:16
本发明专利技术涉及地景动态加载卸载技术领域,尤其涉及一种基于位置和视线的地景动态加载卸载方法,包括以下步骤:S1、建立地球瓦片的描述方式;S2、地景框架的构建;S3、地景瓦片的几何筛选;S4、地景瓦片的管线筛选。本发明专利技术是在三维渲染引擎中,使用高程数据构建出地球的基本框架,使用卫片数据渲染地球的地表特征,并且根据当前相机位置和视线方向确定地表的可见性和精细程度,同时保证地球的渲染效果和效率。同时保证地球的渲染效果和效率。同时保证地球的渲染效果和效率。

【技术实现步骤摘要】
一种基于位置和视线的地景动态加载卸载方法


[0001]本专利技术涉及地景动态加载卸载
,尤其涉及一种基于位置和视线的地景动态加载卸载方法。

技术介绍

[0002]地球是一个近似标准的椭球体,而不是一个规则的球体,地球表面积约70.8%的表面积由水覆盖,大部分地壳表面在海平面以下,海底的地壳表面具有多山的特征,包括一个全球性的中洋脊系统,以及海底火山、海沟、海底峡谷、海底高原和深海平原,其余的29.2%为不被水覆盖的地方,包括山地、盆地、平原、高原等地形。地形在军事和飞行仿真、虚拟现实(VR)、地理信息系统(GIS)等领域中起着越来越重要的作用。对于数字高程数据,经常使用的规则网格模型是数字高程模型,然而,在大规模地形场景中,DEM数据就会显得很庞大,其至于超出普通图形卡的显示范围,使得交互性缀差。在实际场景中,观察者在每个观察点所能看到的只是整个数据的一小部分,为防止处于黑夜和不熟悉的地形环境中,飞行员们失去了觉察周围环境的能力,所以没有靠近观察者的场景,需要渲染得详细,而远离观察者的场景就不需要那么详细。现有技术在地球位置进行标注以及渲染时是通过以下方式配合实现:
[0003]使用经纬高可以表示出地球上任意一点的位置,经度范围为[

180,180]度,纬度范围[

90,90],高度为海拔高度(相对于参考椭球体)。
[0004]WGS

84坐标系是一种国际上采用的地心坐标系,如图4所示。坐标原点为地球质心,其地心空间直角坐标系的Z轴指向BIH(国际时间服务机构)1984.0定义的协议地球极(CTP)方向,X轴指向BIH1984.0的零子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系,称为1984年世界大地坐标系统。
[0005]OpenGL渲染管线。在OpenGL渲染过程中,顶点数据作为输入会经过多个步骤的处理,最终呈现在显示器上,这个处理过程叫渲染管线。其中一些环节可以由开发人员自定义处理程序,这些运行在GPU上的自定义程序叫做着色器(shader),常用的shader有vertexshader,geometryshader,fragmentshader和computeshader。
[0006]OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(NormalizedDeviceCoordinate,NDC)。也就是说,每个顶点的x,y,z坐标都应该在

1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在vertexshader中将这些坐标变换为标准化设备坐标。然后将这些标准化设备坐标传入光栅器(Rasterizer),将它们变换为屏幕上的二维坐标或像素。
[0007]将坐标变换为标准化设备坐标,接着再转化为屏幕坐标的过程通常是分步进行的,也就是类似于流水线那样子。在流水线中,物体的顶点在最终转化为屏幕坐标之前还会被变换到多个坐标系统(CoordinateSystem)。将物体的坐标变换到几个过渡坐标系(IntermediateCoordinateSystem)的优点在于,在这些特定的坐标系统中,一些操作或运算更加方便和容易。对我们来说比较重要的总共有5个不同的坐标系统,如图1所示:
[0008]局部空间/局部坐标系(LocalSpace,或者称为物体空间(ObjectSpace))
[0009]世界空间/世界坐标系(WorldSpace)
[0010]观察空间(ViewSpace,或者称为视点空间(EyeSpace))
[0011]裁剪空间/裁剪坐标系(ClipSpace)
[0012]屏幕空间/屏幕坐标系(ScreenSpace)
[0013]这就是一个顶点在最终被转化为片段之前需要经历的所有不同状态。
[0014]上述地球渲染以及位置标注处理中在对卫星遥感图片进行筛选处理渲染单一,且处理过程中数据量运算耗时大,整体渲染处理的效果和效率有待提高,为此申请人提出一种基于位置和视线的地景动态加载卸载方法来解决上述问题。

技术实现思路

[0015]本专利技术的目的是提供一种基于位置和视线的地景动态加载卸载方法,解决上述
技术介绍
提出的现有技术中的问题。
[0016]为了实现上述目的,本专利技术采用了如下技术方案:
[0017]一种基于位置和视线的地景动态加载卸载方法,包括以下步骤:
[0018]S1、建立地球瓦片的描述方式:假设地球由多个瓦片拼接而成并建立坐标系来描述瓦片,且每个瓦片的坐标位置附加等级数(表示为(x,y,等级))形成一个完整且唯一的瓦片id;
[0019]S1.1:瓦片id以东经0度,南纬90为原点,向东为x轴正方向,向北为y轴正方向建立坐标系,同时规定0级瓦片的大小为180度x180度,所以0级有瓦片共有两个,瓦片id分别是(0,0,0)和(0,1,0);
[0020]S1.2:每个等级的瓦片长宽都是上一级瓦片长宽的1/2,1级瓦片的大小就是90度*90度共8片,以此类推。
[0021]S2、地景框架的构建:预处理高程tif文件,生成bin文件;
[0022]S2.1:bin文件包含文件头和像素块数据,其中,像素块中每个像素包含WGS84坐标和高程bin文件布局;
[0023]geobinHeader;
[0024]vec4[n];
[0025]ecef

x;
[0026]ecef

y;
[0027]ecef

z;
[0028]heighField;
[0029]S2.2:将bin文件的像素块作为纹理加载到显存,只需加载一次即可,而且可以作为descriptor资源共享;
[0030]computeshader对高程纹理进行采样,获取采样点的WGS84坐标和高程;
[0031]computeshader将WGS84坐标,保存到positionSSBO中;
[0032]vertexshader将positionSSBO中的WGS84坐标转化为NDC坐标,用于构建trianglestrip图元。
[0033]S3、地景瓦片的几何筛选:根据开放式图形库相机的位置和视线方向等参数,将瓦
片的WGS84坐标系坐标转化到裁剪空间中,再判断瓦片的三角面与裁剪视锥体是否碰撞及可见性;
[0034]S3.1:通过分离轴算法,可以快速求解出组成当前瓦片的三角面是否与裁剪视锥体有碰撞,如果有碰撞则说明此瓦片为可见,否则不可见;
[0035]S3.1.1:对于可见的部分,为了显示的更加精细,需要对可见部分的下个层级进行碰撞检测,一直迭代直到检测到最高级别的瓦片,使得能得出所有可见瓦片的瓦片id。
[0036]S4、地景瓦片的管线筛选:经过S3步骤中的几何筛选,将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于位置和视线的地景动态加载卸载方法,其特征在于,包括以下步骤:S1、建立地球瓦片的描述方式:假设地球由多个瓦片拼接而成并建立坐标系来描述瓦片,且每个瓦片的坐标位置附加等级数(表示为(x,y,等级))形成一个完整且唯一的瓦片id;S2、地景框架的构建:预处理高程tif文件,生成bin文件;S3、地景瓦片的几何筛选:根据开放式图形库相机的位置和视线方向等参数,将瓦片的WGS84坐标系坐标转化到裁剪空间中,再判断瓦片的三角面与裁剪视锥体是否碰撞及可见性;S4、地景瓦片的管线筛选:经过S3步骤中的几何筛选,将位于视锥体的瓦片全部送入渲染管线,瓦片在管线中再经过顶点遮蔽器后会进行遮挡测试。2.根据权利要求1所述的一种基于位置和视线的地景动态加载卸载方法,其特征在于,S1中:瓦片id以东经0度,南纬90为原点,向东为x轴正方向,向北为y轴正方向建立坐标系,同时规定0级瓦片的大小为180度x180度,所以0级有瓦片共有两个,瓦片id分别是(0,0,0)和(0,1,0)。3.根据权利要求2所述的一种基于位置和视线的地景动态加载卸载方法,其特征在于,每个等级的瓦片长宽都是上一级瓦片长宽的1/2,1级瓦片的大小就是90度*90度共8片,以此类推。4.根据权利要求1所述的一种基于位置和视线的地景动态加载卸载方法,其特征在于,S2中:bin文件包含文件头和像素块数据,像素块中每个像素包含WGS84坐标和高程bin文件布局:geobinHeader;vec4...

【专利技术属性】
技术研发人员:王立楠顾东旭刘峰
申请(专利权)人:北京领为军融科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1