论文部分内容阅读
三维可视化技术是计算机图形学领域中一个重要的研究方向,已经被广泛运用于虚拟现实、动画、电影、游戏、工业设计等领域中,但是与地理信息系统相关的应用却比较少。近些年来,地理信息系统(GIS)领域受到了越来越多的关注,DEM作为地形模拟的重要表达方式已经成为国家空间数据基础设施的基本内容之一,研究如何利用DEM来模拟地形是一个非常重要的课题。地形实时渲染是三维地形可视化技术中非常重要的一个环节,由于现在的地形规模越来越大,地形精度也越来越高,传统的静态渲染算法不足以满足具有海量数据的地形实时渲染的需要。本文对DEM表面建模进行了研究,对基于TIN表面建模方法和基于Grid表面建模方法两种常见的DEM表面建模方法进行了分析和比较,采取了基于Grid表面建模方法构建三维网格地形。本文对常用的动态LOD地形算法进行了分析,传统的四叉树连续LOD地形算法基于视相关原理,根据视点与地形节点之间的距离地变化来实时动态地生成不同精度的地形网格,相较于静态地形算法而言,该类型算法可以有效地减少计算机每帧所需要渲染的三角形数量,提高渲染效率。但传统的基于四叉树LOD实时渲染算法有两个缺点:其一是容易产生地形T形裂缝,传统的消除地形T形裂缝是采用添加边或者删减边的方式,上述两种方式都有着其局限性,添加边的方式会增加渲染边的数量;删减边的方式只适用于相邻节点细节层次相差为1的情况。其二是该算法采用基于世界坐标的方式来完成剔除操作,虽然该方法简单直观,但是该方法在判断节点是否在视截体内时需要进行大量的计算,不利于提高地形渲染效率。本文的创新点在于对传统的基于四叉树LOD实时渲染算法所存在的两个缺点进行改进。针对该算法的第一个缺点,本文采用将添加边和删减边两种方法动态结合起来的方式消除地形T形裂缝,该方法既可以适用于相邻节点间的细节层次度相差为任何数目的情况,又可以很好地提高渲染效率。针对该算法第二个缺点,本文采用了基于投影坐标系的方式来选择需要渲染的节点,该方法只需要判断每个节点的投影坐标是否在(-1,1)这个范围内,不需要在世界坐标系内对每个节点进行测试计算,可以减少计算量。本文采用OpenGL平台完成三维地形建模和实时渲染实验,对常用的建模和渲染方法进行了研究,并在此基础上提出了改进的渲染算法。实验结果表明改进后的算法其渲染帧率提高了33%,每帧所需要渲染的三角形数量减少了30%,在实际应用中具有一定的价值。