CN110866964A - 一种gpu加速的椭球裁剪图地形渲染方法 - Google Patents
一种gpu加速的椭球裁剪图地形渲染方法 Download PDFInfo
- Publication number
- CN110866964A CN110866964A CN201911087710.1A CN201911087710A CN110866964A CN 110866964 A CN110866964 A CN 110866964A CN 201911087710 A CN201911087710 A CN 201911087710A CN 110866964 A CN110866964 A CN 110866964A
- Authority
- CN
- China
- Prior art keywords
- terrain
- rendering
- ellipsoid
- clipping
- texture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 13
- 230000000694 effects Effects 0.000 claims abstract description 12
- 230000007246 mechanism Effects 0.000 claims abstract description 6
- 238000002474 experimental method Methods 0.000 claims description 20
- 238000005520 cutting process Methods 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000005192 partition Methods 0.000 claims description 14
- 239000012634 fragment Substances 0.000 claims description 3
- 238000003860 storage Methods 0.000 abstract description 6
- 230000006978 adaptation Effects 0.000 abstract description 3
- 238000004088 simulation Methods 0.000 description 15
- 238000011156 evaluation Methods 0.000 description 9
- 238000007781 pre-processing Methods 0.000 description 8
- 238000012800 visualization Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000132092 Aster Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 238000005243 fluidization Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Image Generation (AREA)
Abstract
本发明属于地理信息技术领域,公开了一种GPU加速的椭球裁剪图地形渲染方法,确定椭球裁剪图算法并且进行改进;通过定义两种不同类型的失真因子,确定算法的投影方法在控制失真效果上的平衡性;在基于椭球裁剪图算法的地形渲染管线中,将纹理影像数据的覆盖过程从几何处理单元中分离出来;对纹理影像数据的流化传输引入两级缓存机制。本发明只需要三个数据集,很大程度上减少内存消耗;在不影响帧率的情况下可以应用非常高分辨率的纹理覆盖,满足低空飞行视角的地形呈现精度得到提高;解决地形数据在存储介质和处理单元之间传输的瓶颈问题,避免了卡顿。本发明具体稳定的渲染效率、较低的系统开销和灵活适应高分辨率纹理覆盖的精度。
Description
技术领域
本发明属于地理信息技术领域,尤其涉及一种GPU加速的椭球裁剪图地形渲染方法。
背景技术
目前,业内常用的现有技术是这样的:
地形地貌是一种重要的地理信息,对人类的生活和实践息息相关,有着非常关键的影响。为了更好地研究和利用地形,随着计算机图形学的发展,人们通过构建数字地形模型(Digital Terrain Model,DTM)、数字高程模型(DigitalElevation Model,DEM),使用计算机对地形地貌等内容进行显示、简化、仿真,地形可视化就是这样一门学科。地形可视化的概念,是在60年代以后随着地理信息系统(GIS)的出现而逐渐形成的。它的应用涉及地理信息系统、虚拟现实、战场环境仿真、飞行模拟、土地管理与利用、气象数据的可视化、娱乐与游戏等领域。由于地形可视化有着广阔的应用背景,伴随着计算机科学、现代数学和计算机图形学的不断发展,这门学科正在受到国内外学者越来越广泛的关注。
飞行模拟机是为了解决飞行员训练问题而设计用来模拟飞行过程的,一方面极大地提高了飞行员训练的安全性,另一方面大幅度降低了培养飞行员的经济成本。借助强大的飞机制造基础,欧美国家在飞行模拟机的研发上先行一步,美国波音公司、欧洲Airbus公司针对自家的客机均有推出适配的飞行模拟机。相比国外较为成熟和完善的飞行模拟机研发技术,我国在这一技术领域进入较晚,国内开发的飞行视景仿真系统与国际上高等级飞行模拟机的技术要求还有一定差距。随着我国自主研发制造的各类型飞机逐渐投入使用,我们正加紧
研制出具有自主完全知识产权的飞行模拟机。四川大学及川大智胜软件股份有限公司通过多年努力,采用高性能的并行绘制技术,研发了支持超高仿真模型精度的三维实时渲染引擎,所构建的飞行视景系统达到了国际上同类产品的先进水平,并首次通过了中国民航飞行训练设备的D级标准认定,在军民航空飞行员和管制员的飞行训练当中已经得到成功应用,并正逐步替代进口产品。
飞行视景系统作为飞行模拟机的重要组成部分,主要作用是给飞行员提供逼真的虚拟飞行环境。它是直接与飞行员进行视觉交互的窗口,是飞行员获取飞行信息的最重要渠道之一,其地形仿真的功能实现具有非常重要的地位。
在飞行视景系统中,为了响应飞机在高速飞行时的高空大范围视角显示,地形仿真必须具备超大的可视范围和快速实时的响应能力。为了提供简单而快速的实现,一些现有技术使用平面网格来表示地形,但是这样忽略地球表面曲率的实现会导致高空和远距离视角变得非常不精确,经测算,如果以外切角作为肉眼可视地球弧形程度的度量,当飞机离地高度为10000m时,其弧形程度可达6.4度。另一方面,由于飞机在低空飞行时需要呈现足够的地形细节,同时飞机处于较高的飞行速度(近200m/s),这就要求地形实时渲染的算法具备极快的更新速度。
此外,飞行模拟过程通常需要跨越上千公里的距离,所涉及到的地形范围极其广阔,随着基于航空航天的遥感技术快速发展,地理信息数据的单位数据量正以几何级数增长,数据分辨率每提高一倍,原始数据量将增加到原来的4倍。例如,14.15m分辨率LandSat卫星地表影像纹理覆盖的地形纹理数据和DEM数据仅仅属于中低分辨率范畴,但在实际的飞行仿真应用中,64km×64km飞行空域的的数据量已经达到了74GB,DEM采样点三角化处理生成的多边形数目达11.74亿个。模型底层的数据量动辄高达数百GB甚至可达TB级,应用系统在对地形数据进行访问和实时渲染时,硬件性能成为瓶颈,其效率可能会大幅下降。因此,如何有效组织地形数据构建高效的数据模型并快速访问调度地形数据,这关系到计算机系统的负载和响应能力,同样是地形实时渲染过程中需要关注处理的一个重点。
随着计算机硬件,尤其是图形处理硬件的快速发展,地形可视化技术已经能够利用硬件强大的计算能力实现更加逼真更加高效的实时渲染。随着用户需求的不断提高和半导体生产工艺工业的快速进步,GPU的峰值计算能力正以极快的速度高速发展。同时,由于GPU本身具有高度并行和运算密集的特点,使其在大规模并行计算上明显优于CPU。因此,通过使用GPU并行计算框架,充分发挥GPU的加速运算能力,提升三维地形实时渲染速度,优化地形实时渲染呈现效果,成为当前地形一种重要的可视化领域。
但是现有技术中数据处理阶段,分区较多,内存消耗较多,且失真程度较高;现有的算法不能高分辨率的进行纹理覆盖,无法满足低空飞行视角的地形呈现精度得到提高;现有技术中,地形数据在存储介质和处理单元之间传输的瓶颈问题,卡顿现象较严重。
综上所述,现有技术存在的问题是:
(1)现有技术中,数据处理阶段,分区较多,内存消耗较多,且失真程度较高(任何形式的投影法都会带来不同程度的失真,椭球裁剪算法能把失真限定在较小的程度);
(2)现有的算法不能高分辨率的进行纹理覆盖,无法满足低空飞行视角的地形呈现精度得到提高(之前提出过提高算法精度的概念,但是加重CPU负担且仍要传送数据至图形显卡);
(3)现有技术中,地形数据在存储介质和处理单元之间传输的瓶颈问题,卡顿现象较严重。(地形数据都存放于计算机磁盘介质中,在渲染过程中这些数据需要先从磁盘介质加载到内存中,再由CPU传输到GPU显存中,才能呈现在计算机屏幕上。流程较长,且随着裁剪图层级增加,渲染开销增大。)
解决上述技术问题的难度和意义:
为了将地球表面的地理数据存储在计算机内存中,必须将地理数据进行投影,而任何形式的投影法都会带来不同程度的失真。且由于地形网格过于规则,对复杂地形的表现效果不佳。几何裁剪图算法在整个地球的球面地形保持了较好的一致性,但在对地形数据的每一帧进行重采样时需要相当大的运算开销。在进行基于CPU的地形渲染中,为了保持地形呈现精度,CPU需要对数据进行多次计算。而地形网格顶点数量庞大,基于CPU的算法开始显现出不足之处,导致层次细节模型对CPU的消耗巨大,影响了系统其它功能模块的运行,显卡GPU的强大计算能力和数据处理功能遭到浪费。在地形渲染中,数据需要由磁盘介质中加载到内存中,再由CPU传输到GPU显存中,随着裁剪图层级的增加,渲染开销会变得很大,成为数据传输的瓶颈。
针对全球地形的实时渲染存在的纹理失真问题,本发明采用椭球裁剪图算法的全球建模框架将整个地球的椭球面地形分为两个极点分区和一个赤道分区进行分别渲染,通过定义两种不同类型的失真因子,验证了算法的投影方法在控制失真效果上的平衡性,减少了数据预处理和失真影响因素。在基于椭球裁剪图算法的地形渲染管线中,将纹理影像数据的覆盖过程从几何处理单元中分离出来,大量计算被转移至GPU上进行,充分发挥了椭球裁剪图算法的GPU友好性。在不影响帧率和控制误差的基础上,本发明算法可以充分发挥GPU算力,应用高分辨率的精细的纹理覆盖数据,实现了高效实时无闪烁渲染,充分满足飞行视景仿真在较低高度空域飞行过程中所呈现的地形精度需求。在地形渲染生成与更新过程中,引入了两级缓存机制对纹理影像数据进行流化传输。通过组织一种可覆盖对应的纹理裁剪图的数据裁剪图形式,提高了处理性能,最终使得数据流化变得更加高效,解决了地形数据在存储介质和处理单元之间传输的瓶颈问题,减少了卡顿。
发明内容
针对现有技术存在的问题,本发明提供了一种GPU加速的椭球裁剪图地形渲染方法。
本发明是这样实现的,一种GPU加速的椭球裁剪图地形渲染方法,通过使用GPU加速计算,基于WGS84参考坐标系实现了适用于飞行视景仿真的全球三维地形可视化,具体包括以下步骤:
步骤一:采用椭球裁剪图算法,通过顶点着色器中的传输过程来完成底层椭球地形网格的生成,利用全球建模框架将整个地球的椭球面地形分为两个极点分区和一个赤道分区进行分别渲染;
步骤二:改进椭球裁剪图算法,不再固定使用投影模型,利用定义两种不同类型的失真因子,确定算法的投影方法在控制失真效果上的平衡性,并在初始阶段采用等距圆柱投影法,尽可能减少预处理过程,将球面地形的纹理失真抑制在较低的水平。在预处理得到的地形数据基础上,选取低纬度地区拼接得到三块用于实验的正方形地形,其边缘分别与经纬度线平行,其纹理影像数据分辨率分别为1024×1024、2048×2048、4096×4096,高度图使用源数据进行裁剪压缩得到同分辨率同尺寸大小。三块地形均为山地,具有一定的起伏,从而保证了渲染生成时的复杂性;
步骤三:在基于椭球裁剪图算法的地形渲染管线中,将纹理影像数据的覆盖过程从几何处理单元中分离出来,转移至GPU上进行大量计算。在该渲染管线中,椭球裁剪图算法将纹理覆盖从几何处理中分离出来,这样能够给地形影像数据的纹理覆盖和顶点生成的几何单元使用不同的纹理尺寸和分辨率;
步骤四:在地形渲染生成与更新过程中,对纹理影像数据的流化传输引入两级缓存机制,对应的纹理裁剪图的数据裁剪图形式进行覆盖。
进一步,步骤二中,椭球体的特殊形状将地球表面划分为南、北极区和低纬度区三个区域,分别采用不同的投影方法控制纹理失真。
进一步,步骤三中,整个渲染管线主要分为顶点处理器、片元处理器和应用程序三个阶段,其中前两者在GPU中完成计算,应用程序阶段交由CPU进行计算。
进一步,步骤三中,是针对纹理流管线结构已有研究的四个阶段基础上,引入额外的两级数据缓存。
综上所述,本发明的优点及积极效果为:
本发明在与本世纪初诞生的几种针对于地形数据处理的算法具有着不同的优势。Losasso与Hoppe在2004年提出的几何裁剪图(Geometry Clipmaps)算法,该算法使用一组以视点为中心的规则嵌套网格来表现地形,通过增量式填充视点移动时的变化区域,但是该算法本身主要针对平面地形,对符合地球特征的球面地形的应用效果并不理想;Bhattacharjee等人在2010年提出将基于正多面体的全球四元三角网格(QuaternaryTriangular Mesh,QTM)模型与几何裁剪图算法相结合,基本实现了几何裁剪图算法在球面地形上的应用,但正八面体剖分的等积性并不理想。
本发明通过对主流地形渲染算法进行研究,对它们在当前硬件环境下的优缺点进行了分析,并最终选择基于GPU加速的椭球裁剪图算法作为地球球面地形实时渲染的基础算法,在此基础上提出创新,实现并优化了大规模球面地形渲染。实验结果显示该地形渲染算法适用于飞行视景仿真系统,可以将其集成于相关项目引擎或框架中。
本发明在数据预处理阶段,采用新的方法对地球进行建模,以南北纬45度线为界,将整个地球表面分为三个分区进行渲染,同时在创建分区边界的地形块时,采取混合操作实现平滑过渡。三个分区意味着只需要三个数据集,这将很大程度上减少内存消耗。通过定义两种不同类型的失真因子进行效果评估,与其它方法相比较时,失真程度较低且这两种失真的影响能够达到一种平衡。
本发明在地形网格生成阶段,将纹理覆盖从几何处理中分离出来,充分发挥椭球裁剪图算法的GPU友好性,将大量计算转移至GPU上进行,这样算法在不影响帧率的情况下可以应用非常高分辨率的纹理覆盖,满足低空飞行视角的地形呈现精度得到提高。
本发明在地形渲染阶段,引入了两级数据缓存,组织一种可覆盖对应的纹理裁剪图的数据裁剪图形式,将其作为缓存,放在原始地形纹理数据和纹理裁剪图之间,通过缓存提高处理性能,最终使得数据流化变得更加高效,解决地形数据在存储介质和处理单元之间传输的瓶颈问题,避免了卡顿。
本发明具体稳定的渲染效率、较低的系统开销和灵活适应高分辨率纹理覆盖的精度。
本发明算法计算过程基于单精度的GPU运算,即使在非常密集的网格中也允许交互式帧速率。CPU占用率非常低,GPU占用率表现好于类似算法。优先的数据请求、有限的最大每帧更新,以及解耦合的升降和纹理覆盖裁剪图,高效纹理流所通过的这些软件管线,使得高分辨率的纹理覆盖对帧率没有产生影响。基于WGS84参考椭球体的实现和不同距离下近似估计方法的不同保证了顶点着色器生成亚像素级精度的底层网格,对高分辨率的纹理覆盖还原支持能力比较好。根据所引入的度量,算法的精度能够满足应用需求。
附图说明
图1是本发明实施例提供的GPU加速的椭球裁剪图地形渲染方法流程图。
图2是本发明实施例提供的两种算法实时CPU占用率情况示意图。
图3是本发明实施例提供的两种算法全程实时GPU占用率对比示意图。
图4是本发明实施例提供的当Δ=4E-2°时的线性估计误差。
图5是本发明使用椭球裁剪图算法进行的区域划分。
图6、图7是在不同的投影方式下产生的不同失真。
其中,图6:a.正切球面立方投影;b.自适应球面立方投影;c.Outerra球面立方投影;d.闭合球面立方投影;e.椭球裁剪图投影。
其中,图7:不同投影方法的纹理面积失真:a.正切球面立方投影;b.自适应球面立方投影;c.Outerra球面立方投影;d.闭合球面立方投影;e.椭球裁剪图投影。
图8是在纹理裁剪下的四种不同可能情况。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在基于椭球裁剪图的全球地形实时渲染框架的基础上,利用经过改进的地形实时渲染管线,可以较好地实现适用于飞行视景仿真的地形可视化。
下面结合附图对本发明的应用原理作详细描述;
如图1所示,本发明实例提供的GPU加速的椭球裁剪图地形渲染方法,具体包括以下步骤:
S101:通过对多种不同方向的地形渲染算法进行分析比较,确定椭球裁剪图算法并且进行改进;
S102:采用椭球裁剪图算法的全球建模框架将整个地球的椭球面地形分为两个极点分区和一个赤道分区进行分别渲染,通过定义两种不同类型的失真因子,确定算法的投影方法在控制失真效果上的平衡性;
S103:在基于椭球裁剪图算法的地形渲染管线中,将纹理影像数据的覆盖过程从几何处理单元中分离出来,转移至GPU上进行大量计算;
S104:在地形渲染生成与更新过程中,对纹理影像数据的流化传输引入两级缓存机制,对应的纹理裁剪图的数据裁剪图形式进行覆盖。
步骤S102中,本发明实例提供的椭球体的特殊形状将地球表面划分为南、北极区和低纬度区三个区域,分别采用不同的投影方法控制纹理失真。
步骤S103中,本发明实例提供的整个渲染管线主要分为顶点处理器、片元处理器和应用程序三个阶段,其中前两者在GPU中完成计算,应用程序阶段交由CPU进行计算。
步骤S103中,本发明实例提供的是针对纹理流管线结构已有研究的四个阶段基础上,引入额外的两级数据缓存。
下面结合具体实施例对本发明的应用原理进行进一步说明;
实施例1:椭球裁剪图地形实时渲染实现过程与分析
(一)针对精度的地形渲染评价体系
根据在三维地形可视化的技术领域对实时地形渲染算法的研究实验进展,对一个地形渲染算法的评价主要由两部分组成:效率和精度。效率的评价相对比较直观,一般根据系统资源消耗情况以及单位时间内的渲染效率即可进行评判。精度指标则相对比较复杂,为了说明本发明实现地形渲染要达到的指标要求,对地形渲染实现结果进行科学的评价,针对渲染精度这个指标,在实验开始之前有必要建立一个合适的评价体系。
本发明算法的主要目标之一就是通过使用双精度的CPU运算和单精度的GPU运算,提供参考WGS84椭球面的亚像素级精度的实时地形渲染。在对发明所提出模型的精度进行估计之前,先引入一个度量,定义屏幕空间误差与世界空间误差的相互关系。对于本发明所用投影方法来说,屏幕空间误差可以通过使用公式(1)表示成世界空间误差ε、世界空间到最佳顶点距离d、视角范围Φ和屏幕窗口分辨率w的函数。
视角范围和窗口分辨率都与屏幕空间中的方向相关,它(2)的定义,我们可以得到不同屏幕方向的相互关系。在公式(2)中,下标hor,vert和diag分别代表屏幕空间的水平方向、垂直方向和对角线方向。
如果我们引入t作为屏幕空间误差的上限,也就有t≥δ,则此时模型所需精度可以被表示为公式(3):
根据公式(3),为了使分辨率为1080p的水平60度视野范围的显示屏能够呈现像素精度的渲染,比值ε/d必须小于6×10-4。这个精度值是研究领域通过使用大量的NVIDIAGPU显卡(包括大量的消费级显卡)进行的实验得到的一个上限值。GPU计算的单精度值是通过变换反馈机制取得的,并和CPU计算的扩展双精度值进行比较而来。为了确定由不同精度计算而得的同一个点的两个三维位置之间的距离ε,本发明在这里引入了欧氏距离,而d是从站心坐标系中心出发到这两个位置中更精确那个位置的距离。由于视点总是位于地球表面的上方,在实际应用中,中心到顶点的真实距离应比d更大。但是,为了使计算不受视点高度的影响,我们还是使用站心距离d来进行计算。
2、地形数据和纹理数据的获取和预处理
实验使用了如下几个数据源提供的地形数据。DEM高程数据使用了精度为30米的ASTER GDEM v2,单位样本分辨率为3601×3601。为了全球椭球体模型的分区要求,对赤道分区的高度样本进行了缩放和倾斜,对极点分区的高度样本进行了二次投影。同时,为了减少存储空间和运行加载时间,对部分DEM数据进行了压缩。纹理影像数据主要来自谷歌地球。使用专用的下载工具下载了11个层级的谷歌地球卫星影像瓦片数据,单张瓦片分辨率为256×256,精度分别从每像素0.6米至611.5米。对于由于影像拍摄过程中光照角度不同造成的数据明暗不统一问题,使用Photoshop软件对部分纹理影像数据进行了处理。为了进一步控制数据规模,根据实验需要选取的大分辨率地形纹理影像数据均在瓦片拼接的基础上进行了压缩处理。
此外,为构建全球模型框架,还下载了最小比例尺的5个层级的谷歌地球卫星影像数据,分辨率为每像素78271.52米至4891.97米;为最小层级的谷歌地球卫星影像,全球共由4张瓦片构成。
(二)基于渲染效率的实验与分析
1、地形数据
在预处理得到的地形数据基础上,选取低纬度地区拼接得到三块用于实验的正方形地形,其边缘分别与经纬度线平行,其纹理影像数据分辨率分别为1024×1024、2048×2048、4096×4096,高度图使用源数据进行裁剪压缩得到同分辨率同尺寸大小。三块地形均为山地,具有一定的起伏,从而保证了渲染生成时的复杂性。
2、实验方法与过程
由于视点保持静态且距离地面较近,地形块规模不大,本发明选取适用于平面地形的ROAM算法、几何裁剪图算法与椭球裁剪图算法进行对比,实验过程如下:
(1)将视点位置设定为每块地形低纬度一侧边缘的中央位置200米高度处,视角为俯角45°视线方向为向高纬度一侧边缘的中央位置。
(2)用不同算法分别载入正方形地形网格的纹理影像数据和对应的DEM高度图。
(3)三块地形各进行一次载入。
(4)读取载入后稳定的帧率和每帧渲染的三角形数量作为输出结果。
3、实验结果与分析
实验结果如表1所示。
表1:基于渲染效率的实验结果及对比
由上表可见,对于不同规模的地形块,本发明基于改进渲染管线的算法效率较传统的ROAM算法和几何裁剪图算法有一定提升,渲染帧率有一定提高,而每帧渲染的三角形数量都有所下降。
(三)基于硬件开销的实验与分析
1、地形数据
在预处理得到的地形数据基础上,选取某高原地区机场附近的25km×25km地形作为输入,地形边缘分别与经纬度线平行,纹理影像数据由64块分辨率为4096×4096的地形按8×8的方式排列而成,DEM数据使用对应坐标位置的经过压缩预处理的RAW格式高度图。视点高度距地形最低表面位置高度1000米,以100米/秒的匀速按固定路线飞行200秒。
2、实验方法与过程
本发明涉及地形块规模较大,选取同样致力于球面地形实现的球面裁剪图(Spherical Clipmaps)算法与椭球裁剪图算法进行对比,实验过程如下:
(1)将起始视点位置设定为地形西侧边缘中央,视角为俯角30°。
(2)对两种算法进行实现,并用算法分别载入地形。
(3)启动视点移动并开始记录程序实时CPU占用率、GPU占用率情况。
(4)汇总全程实时CPU占用率、GPU占用率作为输出结果。
3、实验结果与分析
根据记录的数据汇总为折线表,可得全程实时CPU占用率对比表,如图2所示。由结果可以看出,椭球裁剪图算法在CPU资源的占用上比球面裁剪图算法略好一点,因实验过程中数据的采集有可能受系统其它功能和进程的影响出现偏差,我们可以认为两者在性能开销上基本相同,CPU占用率基本在30%以下,也就是说,实时渲染管线所涉及的线程基本上能够用一个CPU内核完成计算(本发明实验所用CPU为四核心八线程架构)。
如图2所示,本发明实施例提供的两种算法实时CPU占用率情况示意图。
实验过程中Windows任务管理器中所显示的CPU逻辑处理器工作状态,其中线框中为渲染线程的工作状态,由图可见,整个实验过程中,渲染线程只占用了单个CPU内核约10%,即使在开启了网格线框的更高资源开销状态下,实时每帧渲染时间也只有1.4至1.5毫秒。这样,一方面,给实现更复杂的、基于CPU运算的算法部分留下了足够的空间,另一方面,在飞行视景仿真平台中能够保证系统的其它模块有足够的CPU资源能够利用,满足飞行视景仿真的需求。作为纹理流化管线一部分的其它工作线程的CPU的开销也非常低。
尽管渲染线程采用了同步操作来更新纹理数据,但是由于额外的两级缓存机制,在加载纹理时,本算法不需要使用基于OpenGL的像素缓冲区对象(PBO)来存储像素数据,这样GPU无须负责纹理对象的数据传输,降低了GPU的负载。全程实时GPU占用率对比表如图3所示。椭球裁剪图算法在GPU资源的占用上明显好于球面裁剪图算法,GPU占用率没有超过90%,实验中视点相比通常情况下的飞行模拟高度较低,LOD效果并不明显,可以预期,如果视点位置更高,则LOD的优势将进一步降低算法的GPU开销。
如图3所示,本发明实施例提供的两种算法实时GPU占用率情况示意图。
(四)基于渲染精度的算法验证与分析
1、地形数据
在预处理得到的地形瓦片数据基础上,根据椭球裁剪图算法全球分区方法,将纹理覆盖影像数据进行拼接,其裁剪图层级的大小设为5376×5376纹素,高程裁剪图层级设为1024×1024单位样本。
2、验证过程与分析
本发明将重点放在场景生成的效果上,依据本章前述的精度评价体系,对椭球裁剪图算法实现的全球三维渲染模型的精度进行验证。前面定义了单精度的全球椭球面计算,这些计算方法只能满足离站心原点大于一定值的经纬度距离所需的精度。对于参考WGS84的椭球体来说,这个距离大约是5×10-2°。为了使小于这个值的经纬度距离能够满足比值ε/d小于6×10-4这一精度要求,本发明算法采用简单的线性估计来进行近似计算。通过计算椭球面地心直角坐标Pxyz(θpart)沿着站心原点位置的经纬度坐标轴方向的前向差商(如公式(4)和公式(5)所
示)得到的结果表明,在较近的经纬度距离应用线性估计的方法能够满足精度要求。
这种线性估计方法的精度取决于差分算子Δ的选择。在站心原点上,该值越大,则精度越低,但在更远的距离上,近似值的精确程度能够被接受。当Δ=4E-2°时,纬度为0(即赤道上)的参考WGS84椭球面的线性估计误差如图4所示。特殊值Δ可以任意选取,既确保能够应用于远到全球椭球面计算不精确的距离,但也足够保证近到原点周围无穷小距离时所需的精度。
如图4所示,本发明实施例提供的当Δ=4E-2°时的线性估计误差
在分区经纬空间中,除了距离,线性估计的误差还与方位角、纬度等因素相关。虽然随着纬度的增加,线性估计的精度将减少,但是,根据已经得到验证的结果,不同方位角和纬度的经纬度距离小于5×10-2°的情况下,线性估计的精度仍然能够满足比值ε/d小于6×10-4的精度要求。直观反映了地形场景渲染的清晰程度,可见算法所满足的精度要求能够对分辨率高达5376×5376的纹理覆盖实现较好的还原。
(五)结果:
为验证算法的有效性和适用性,设计了一套地形渲染评价体系,设计实验从渲染效率、性能开销、渲染精度三个角度对本发明算法的实现效果进行了分析比较,展现了所得到的实验结果和数据,根据建立的评价体系和对应的指标要求,进一步验证了使用该算法的三个优势:稳定的渲染效率、较低的系统开销和灵活适应高分辨率纹理覆盖的精度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种GPU加速的椭球裁剪图地形渲染方法,其特征在于,所述的GPU加速的椭球裁剪图地形渲染方法包括:
步骤一:通过对多种不同方向的地形渲染算法进行分析比较,确定椭球裁剪图算法并且进行改进;
步骤二:采用椭球裁剪图算法的全球建模框架将整个地球的椭球面地形分为两个极点分区和一个赤道分区进行分别渲染,通过定义两种不同类型的失真因子,确定算法的投影方法在控制失真效果上的平衡性;
步骤三:在基于椭球裁剪图算法的地形渲染管线中,将纹理影像数据的覆盖过程从几何处理单元中分离出来,转移至GPU上进行大量计算;
步骤四:在地形渲染生成与更新过程中,对纹理影像数据的流化传输引入两级缓存机制,对应的纹理裁剪图的数据裁剪图形式进行覆盖。
2.如权利要求1所述的GPU加速的椭球裁剪图地形渲染方法,其特征在于,所述步骤二中,椭球体的特殊形状将地球表面划分为南、北极区和低纬度区三个区域,分别采用不同的投影方法控制纹理失真。
3.如权利要求1所述的GPU加速的椭球裁剪图地形渲染方法,其特征在于,所述步骤二中,在预处理得到的地形数据基础上,选取低纬度地区拼接得到三块用于实验的正方形地形,其边缘分别与经纬度线平行,其纹理影像数据分辨率分别为1024×1024、2048×2048、4096×4096,高度图使用源数据进行裁剪压缩得到同分辨率同尺寸大小;三块地形均为山地。
4.如权利要求1所述的GPU加速的椭球裁剪图地形渲染方法,其特征在于,所述步骤三中,整个渲染管线主要分为顶点处理器、片元处理器和应用程序三个阶段,其中前两者在GPU中完成计算,应用程序阶段交由CPU进行计算。
5.如权利要求1所述的GPU加速的椭球裁剪图地形渲染方法,其特征在于,所述步骤三中,是针对纹理流管线结构已有研究的四个阶段基础上,引入额外的两级数据缓存。
6.如权利要求1所述的GPU加速的椭球裁剪图地形渲染方法,其特征在于,所述步骤三中,在该渲染管线中,椭球裁剪图算法将纹理覆盖从几何处理中分离,给地形影像数据的纹理覆盖和顶点生成的几何单元使用不同的纹理尺寸和分辨率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911087710.1A CN110866964A (zh) | 2019-11-08 | 2019-11-08 | 一种gpu加速的椭球裁剪图地形渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911087710.1A CN110866964A (zh) | 2019-11-08 | 2019-11-08 | 一种gpu加速的椭球裁剪图地形渲染方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866964A true CN110866964A (zh) | 2020-03-06 |
Family
ID=69654564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911087710.1A Pending CN110866964A (zh) | 2019-11-08 | 2019-11-08 | 一种gpu加速的椭球裁剪图地形渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866964A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111476711A (zh) * | 2020-06-28 | 2020-07-31 | 航天宏图信息技术股份有限公司 | 数据的投影及角度矫正方法、装置 |
CN113034339A (zh) * | 2020-10-26 | 2021-06-25 | 中国人民解放军92942部队 | 一种基于gpu加速的提高振动数据传输带宽方法 |
CN117372599A (zh) * | 2023-12-04 | 2024-01-09 | 山东理工大学 | 一种海量真三维模型加载优化方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454129A2 (en) * | 1990-04-26 | 1991-10-30 | Honeywell Inc. | System for generating a texture mapped perspective view |
JP2002056396A (ja) * | 2000-04-18 | 2002-02-20 | Canon Inc | グラフィックオブジェクトイメージ描画方法及び装置 |
US20060017740A1 (en) * | 2004-07-26 | 2006-01-26 | Coleman Christopher R | Diurnal variation of geo-specific terrain temperatures in real-time infrared sensor simulation |
US20070171234A1 (en) * | 2006-01-24 | 2007-07-26 | Roger Crawfis | System and method for asynchronous continuous-level-of-detail texture mapping for large-scale terrain rendering |
CN102890829A (zh) * | 2011-10-24 | 2013-01-23 | 克拉玛依红有软件有限责任公司 | 一种基于gpu的渲染地形的方法 |
GB201600642D0 (en) * | 2016-01-13 | 2016-02-24 | Sony Computer Entertainment Inc | Apparatus and method of image rendering |
CN105467443A (zh) * | 2015-12-09 | 2016-04-06 | 中国科学院地质与地球物理研究所 | 一种三维各向异性弹性波数值模拟方法及系统 |
CN105701851A (zh) * | 2014-11-28 | 2016-06-22 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的三维渲染引擎系统 |
CN109064556A (zh) * | 2018-08-10 | 2018-12-21 | 四川大学 | 一种面向isr的地貌高精度仿真建模系统 |
-
2019
- 2019-11-08 CN CN201911087710.1A patent/CN110866964A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0454129A2 (en) * | 1990-04-26 | 1991-10-30 | Honeywell Inc. | System for generating a texture mapped perspective view |
JP2002056396A (ja) * | 2000-04-18 | 2002-02-20 | Canon Inc | グラフィックオブジェクトイメージ描画方法及び装置 |
US20060017740A1 (en) * | 2004-07-26 | 2006-01-26 | Coleman Christopher R | Diurnal variation of geo-specific terrain temperatures in real-time infrared sensor simulation |
US20070171234A1 (en) * | 2006-01-24 | 2007-07-26 | Roger Crawfis | System and method for asynchronous continuous-level-of-detail texture mapping for large-scale terrain rendering |
CN102890829A (zh) * | 2011-10-24 | 2013-01-23 | 克拉玛依红有软件有限责任公司 | 一种基于gpu的渲染地形的方法 |
CN105701851A (zh) * | 2014-11-28 | 2016-06-22 | 星际空间(天津)科技发展有限公司 | 一种基于地理信息的三维渲染引擎系统 |
CN105467443A (zh) * | 2015-12-09 | 2016-04-06 | 中国科学院地质与地球物理研究所 | 一种三维各向异性弹性波数值模拟方法及系统 |
GB201600642D0 (en) * | 2016-01-13 | 2016-02-24 | Sony Computer Entertainment Inc | Apparatus and method of image rendering |
CN109064556A (zh) * | 2018-08-10 | 2018-12-21 | 四川大学 | 一种面向isr的地貌高精度仿真建模系统 |
Non-Patent Citations (3)
Title |
---|
WEI XIONG: "Study of LOD terrain rendering algorithm based on GPU" * |
宋歌: "基于细分着色的飞行仿真地形建模方法" * |
李玉东: "地形三维场景实时变换及可视化方法研究" * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111476711A (zh) * | 2020-06-28 | 2020-07-31 | 航天宏图信息技术股份有限公司 | 数据的投影及角度矫正方法、装置 |
CN113034339A (zh) * | 2020-10-26 | 2021-06-25 | 中国人民解放军92942部队 | 一种基于gpu加速的提高振动数据传输带宽方法 |
CN113034339B (zh) * | 2020-10-26 | 2024-04-09 | 中国人民解放军92942部队 | 一种基于gpu加速的提高振动数据传输带宽方法 |
CN117372599A (zh) * | 2023-12-04 | 2024-01-09 | 山东理工大学 | 一种海量真三维模型加载优化方法 |
CN117372599B (zh) * | 2023-12-04 | 2024-03-01 | 山东理工大学 | 一种海量真三维模型加载优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270756B (zh) | 一种应用于bim模型文件的数据渲染方法 | |
US5630718A (en) | Weather simulation system | |
Liang et al. | A visualization-oriented 3D method for efficient computation of urban solar radiation based on 3D–2D surface mapping | |
CN114219902B (zh) | 气象数据的体绘制渲染方法、装置和计算机设备 | |
CN110866964A (zh) | 一种gpu加速的椭球裁剪图地形渲染方法 | |
US5409379A (en) | Weather simulation system | |
CN107093207B (zh) | 一种基于gpgpu的天然气泄漏扩散的动态可视化方法 | |
CN110852952B (zh) | 一种基于gpu的大规模地形实时绘制方法 | |
CN113436308B (zh) | 一种三维环境空气质量动态渲染方法 | |
CN110765620A (zh) | 飞行器视景仿真方法、系统、服务器及存储介质 | |
CN107220372B (zh) | 一种三维地图线要素注记自动放置方法 | |
KR101591427B1 (ko) | 3차원 지형 영상 가시화에서의 적응형 렌더링 방법 | |
CN103714213B (zh) | 一种复杂地理信息的并行绘制方法 | |
CN107170040A (zh) | 一种三维桥梁场景构建方法和装置 | |
CN112001993A (zh) | 一种面向大场景的多gpu城市仿真系统 | |
Westerteiger et al. | Spherical Terrain Rendering using the hierarchical HEALPix grid | |
US9401044B1 (en) | Method for conformal visualization | |
Dimitrijević et al. | Ellipsoidal Clipmaps–A planet-sized terrain rendering algorithm | |
CN112330806A (zh) | 一种基于低功耗硬件平台的视景合成方法及系统 | |
WO2006100984A1 (ja) | ボリュームデータレンダリングシステムおよびボリュームデータレンダリング処理方法 | |
CN114445538A (zh) | 目标对象的实时渲染方法、装置、电子设备及存储介质 | |
US20220130099A1 (en) | Ray-guided water caustics | |
US20110074777A1 (en) | Method For Displaying Intersections And Expansions of Three Dimensional Volumes | |
CN116824082B (zh) | 虚拟地形的绘制方法、装置、设备、存储介质及程序产品 | |
Shen et al. | Simulation System of Aircraft Surveillance in Airport Terminal Area |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200306 |
|
RJ01 | Rejection of invention patent application after publication |