论文部分内容阅读
地形绘制有着广泛的运用,室外场景的交互式渲染在可视化应用中有着重要的地位,如游戏开发、航空模拟、外景探测等。随着绘制场景越来越复杂,绘制的地形也就越来越大。特别是在虚拟战场中,地形场景一般由几百万甚至更多的三角形构成。非常庞大的数据量,远远超出了一般图形硬件的实时处理能力和内存容量;另外,图形显卡的绘制能力虽然有了很多的提高,但是它相对于如此庞大的三角形绘制来说,是相当有限的。这两点成为地形绘制应用所面临的最大挑战。要想能够实时、交互绘制,必须对大规模地形场景进行简化,必须对庞大的数据进行有效的管理。为此,学者们提出了很多优秀的算法。但是随着新一代的显卡绘制能力不断增加,原有的地形算法已经不能够满足用户的需求。在过去,很多地形绘制算法都依赖于CPU,但是对于新一代的图像显卡来说,减少绘制三角形处理的开销甚至超过这些三角形被绘制的开销。近年来,学者们不再一味追求减少绘制三角形,而是转向如何充分利用GPU来绘制地形。本文主要涉及到地形绘制和地形的数据管理这两个方面。本文的算法是基于Geometry clipmap算法,这个算法可以渲染大规模地形。它是由Losasso和hoppe在2004年提出的。Asirvatham和hoppe在2005年对它进行了改进,使之能够充分利用GPU。本人对Geometry Clipmap的clipmap的尺寸、顶点和索引缓冲区构建、裂缝消除等方面,进行了改进。在地形数据管理方面,使用了预调度算法、多线程调度模式进行数据调度。为了降低CPU的带宽,本文把地形划分为不同精细度的地形块。把这些块保存到外存中,当可见的时候,再调度到内存中。最后,在Glitch引擎基础之上,实现了一个基于GPU的超大规模地形场景绘制框架。本框架利用了GPU的顶点索引缓冲、顶点采用、绘制到纹理、几何实例等技术,使得CPU从地形绘制方面解放出来,更多的进行物理模拟、AI运算。