论文部分内容阅读
大规模地形渲染技术一直是图形学中的热点问题。随着“数字地球”和“全球信息网格”等概念的相继提出,建立全球规模的虚拟地形场景受到越来越多的关注。另一方面,图形处理器(GPU)的发展非常迅速,处理能力越来越强,并初步具备了可编程能力,应用方法与范围不断扩大,能完成一些原来必须在CPU上进行的工作如层次细节控制、视域裁剪等,甚至能够用来进行通用计算。针对全球地形数据量大、坐标不统一等问题,本文进行了深入的研究,并结合当前图形显示技术的发展,实现了全球地形的渲染。主要内容和创新点如下:1.基于四叉树对全球数据进行分层分块。全球地形数据量非常大,远远超出了图形设备的处理能力,也没有必要总是使用最高精度的数据,本文按照四叉树方法对地形数据进行了分层,从最高层开始,下一层的数据为上一层分辨率的两倍,分块的行数和列数也增加一倍,所有块的行数和列数都相等。采用这种方法,易于索引,方便进行可见性判断、层次控制等操作,在渲染时也能够统一针对地形块进行优化。2.视点相关的层次细节技术。从上往下访问四叉树,按照距离视点远近、地形块大小、地形块粗糙程度进行LOD控制,决定地形块是否达到需要的精度,是否需要分裂该块,并同时进行了裁剪,去掉了不可见的块。3.鼠标拾取。为了得到屏幕上的点在世界中的坐标,针对3D API提供的z-buffer算法的缺点,使用射线相交的方法反算大地坐标,并结合Direct3D变换矩阵给出了方程的参数。4.基于图形处理器的地形块渲染方案。针对所有地形块行列数相等,结合最新的在顶点着色器中访问纹理的技术,我们让所有地形块使用同一个顶点缓存和索引缓存,在顶点着色器中访问高度图获取地面高程进行渲染,大大减少了需要载入的数据量并减少了CPU和GPU之间的通讯,提高了渲染效率,充分发挥了GPU的能力,解放了CPU。5.插件系统的设计。我们讨论了微内核和巨内核插件系统框架的优缺点并基于巨内核框架设计了一个插件系统,插件编写简单,只需从规定基类继承即可,结合.net框架提供的运行时编译功能,能实现源代码形式的插件。最后,论文对所做工作进行了总结,并对下一步的工作提出了设想。