精美的模型和逼真的效果需要软件系统的三维绘制引擎支持才能将最终的效果表现出来,不同的三维绘制引擎对于模型的表现不尽相同。三维游戏引擎(如Quake、Unreal、Halflife的引擎)对于效果的表现最好,但是由于其软件架构的设计主要是针对局部和小范围场景的,在大规模场景数据上缺少必要的优化手段和支持,同时没有对属性数据的整合和表现,不适合用于工程、城市规划以及城市防灾减灾等领域。
三维可视化信息系统必须针对海洋空间信息数据多维、海量化等大数据特点,绘制引擎采用PVS、连续LOD、场景自动简化、分布式集群绘制等优化技术。技术难点在于:在用户浏览器有限的图形处理和计算处理资源支持下,面对海量的高分辨率遥感和地形数据,如何采用优化算法和策略,实现城市任意区域三维场景的高度真实、实时动态、可交互的立体显示和漫游。
对于具有高性能图形处理器的用户,首先利用微机图形处理器(graphic process unit,GPU)的三维加速特性,在深入研究GPU图形渲染引擎的结构和特性的基础上,充分利用GPU的可编程性,引入适应图形硬件的算法,如Geometry mipmap、Chunked LOD以及Geometry Clipmap等算法,通过对Geometry Clipmap等算法进行改进,可以通过在图形卡内存上高速缓冲,极大地提高三维图形的绘制速度,改善绘制效果,保证三维影像显示的逼真性和实时性。
设计并实现支持多线程渲染、数据渐进调度的地形渲染引擎,进一步提升海量地形三维绘制的速度,利用顶点着色器实现局部高精度地形数据的“镶嵌”显示。
实现三维可视化的技术流程如图5-31所示。该模块的软件框架体系中包含以下三个主要子模块:原始数据预处理模块、数据引擎模块与地形渲染引擎模块。(www.xing528.com)
图5-31 三维可视化技术流程
(1)原始数据预处理模块。原始数据预处理模块包括对原始数据的分层、分块,索引文件的建立,瓦片数据的存储。该模块可将单个大数据文件分解为多个小文件进行重采样、数据分块操作。该模块拟使用开源项目地理数据抽象层(geospatial data abstraction library,GDAL)来实现对多种图像格式的支持。
(2)数据引擎模块。数据引擎模块可以对每一层的分块数据进行快速的索引和读取,并对缓冲区域的瓦片数组进行装配,向地形渲染引擎提供符合算法要求的“可视”区域数据。
(3)地形渲染引擎模块。地形渲染引擎通过封装改进的Geometry Clipmap算法和着色器来实现其功能。用户只需要通过鼠标或键盘操作就可以完成对地形场景的动态更新和绘制。由于着色器是通过封装技术实现的,当着色器在GPU上运行的时候会替代传统固定管线的操作,为了不影响其他可视化系统的绘制效果,可在地形渲染引擎中设置着色器的开关控制,使得地形场景和其他的可视化对象进行统一的处理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。