论文部分内容阅读
地形数据的可视化在实时仿真、三维(3D)游戏以及地理信息可视化等很多领域占有十分重要地位。随着遥感技术,卫星技术的发展,高分辨率的数字几何高程数据以及影像纹理数据的获取成为可能,但是大规模地形数据的交互式可视化给我们带来了巨大挑战。目前国内外研究人员针对地形数据可视化的问题进行了大量的研究,努力从算法层面上提高绘制效率,进而满足实时绘制的要求。由于涉及的数据量通常都十分庞大,如何提高其性能一直是图形学研究领域的热点。地形渲染算法的性能问题本质上可以看作中央处理器(Central Processing Unit,CPU)与图形处理器(Graphics Processing Unit,GPU)之间的负载平衡问题。当中央处理器与图形处理器能够保证负载平衡时,资源总是可以获得最大程度的利用,性能也总是可以获得最大程度的发挥。近年来,图形处理器技术迅猛发展,其强大的并行处理能力已经远远超越了中央处理器。随着图形处理器绘制能力的不断提高,中央处理器与图形处理器的负载失衡逐渐成为制约其性能提高的瓶颈。本文结合现代图形处理器体系结构,介绍了基于光线投射(Ray Casting)的地形渲染算法。传统的光线投射算法所有的计算都在中央处理器中完成,并且需要进行精确的相交测试以确定光线与物体的交点,对于需要处理大规模数据的地形渲染并不适合。为使光线投射算法适用于地形渲染,本文对其做了简化,使原来复杂的相交测试只需要一步即可完成,并且在图形处理器中实现了全部流程,使基于光线投射算法的地形实时绘制成为可能。由于在图形处理器中实时计算需要渲染的地形数据,本文算法实际上把地形渲染算法的两个核心部分细节层次(Level of Detail,LOD)策略和预裁剪(Pre-Culling)策略都统一到图形处理器中实现。这无疑充分利用了图形处理器强大的并行处理及专注计算的能力,使中央处理器和图形处理器之间建立起新的负载平衡,同时也简化了应用程序的编制,方便了后续的扩展和改进。为获得较好的渲染效果,并降低地形渲染算法所需的纹理开销,本文还采用了基于图形处理器的纹理混合技术实时合成纹理。该算法从顶点属性中获得纹理合成的加权因子,从而对预先载入的小纹理单元进行加权,实时的合成渲染需要的纹理。由于只需要载入小纹理单元,相对于传统地形渲染算法需要载入大规模纹理数据而言,纹理开销大大减小。而且整个实时合成算法都在图形处理器实现,进一步降低了中央处理器处理纹理数据的开销。实验表明,本文算法不仅充分利用了图形处理器的处理能力,还降低了中央处理器的负载,提高了动态三维重建的帧刷新率,并获得较逼真的渲染效果。