您好, 访客   登录/注册

虚拟场境可视化中构建三维地形的方法探析

来源:用户上传      作者:

  摘要:目前常见的地形生成方法有基于图像的方法、光线追踪法和多边形法。本文根据虚拟场境可视化的特点,具体对各地形生成方法进行比较分析并得出结论。
  关键词:虚拟场景;三维地形;图像
  
  大规模虚拟场景的实时仿真是虚拟现实技术的应用基础,是当前数字地球和数字城市、地理信息系统、计算机图形学研究的热点之一。
  
  一、基于图像的方法
  
  该方法被Apple公司的QuickTimeVR系统所应用,它是一个基于柱面全景图像的虚拟现实系统,它生成不需要知道图像三维几何信息,但支持用户在中360度环视、沿固定路线前进与后退等漫游操作,且视觉效果完全具有照片质量。
  基于图像渲染的基础是图像,图像可以被认为是二维空间上的一种测量,惟一的几何联系是图像空间的二维相邻。基于图像渲染则需要一种更加全局的三维几何相邻。它需要一个更大的几何上下文,获得输入图像集内不同象素之间的几何相邻,从而重构出虚拟环境的连续描述。
  基于图像渲染输入的是离散的图像集,输出的是一个连续变化的函数,又称为全光函数。它描述的是一个观察者在一个特定的空间中所接收到的所有辐射能量。在某一给定视点(Vx,Vy,VZ)、时间(t)、视角(Φ、θ),从一个全光函数中生成所要的一幅图像便能在波长为λ范围上的合成。
  可以看出,基于图像渲染是一种信号重组或函数近似。它的目标是生成环境的一个连续表示。是全光函数的采样、重建、重采样的过程。
  
  二、光线追踪法的分析
  
  光线追踪是专门被用于构造地形的算法。基本思路是从视点投射一束光线,直到这束光线被障碍物阻挡为止。然后向另一个方向再投射一束光线,依此类推。最后,光线中止的点的集合就构成了地形。
  这样,即使在较小的640×480的分辨率中,也有307200个像素,需要投射307200条光线并做计算。这些计算花去了太多的时间。这也是标准的光线跟踪方法动行时非常慢的原因。可以设想:如果我们仅仅投射少量的光线。比如说640条,其余的让它自动生成,就会快得多。
  一种可行的方法是:先投射一条光线去屏幕最下面的像素。等光线碰到地形障碍物后,不是再从视点投射另一条,而是让光线自己顺着地形的起伏爬。所以对每一列屏幕像素,只需投射一条光线。在640×480的例子里,我们只要投射640条光线。那么怎样才能让光线爬行并返回我们要的数值呢?经过数学的运算,可以得出这样的一个优化的算法:
  for(像素列从0到639)
  {dx=cos(当前角度);
  dy=sin(当前角度);
  dz=斜度*(试点夹角-屏幕高度);
  画点;
  当前角度递减;
  }
  优化的算法的关键在于对一个规律的应用:在二维屏幕上能够显示的点,当位置越向上,它对应的三维坐标点就越远离视点。这样,我们在屏幕上对同列的上一行位置的像素点求其地表上对应的空间位置时,我们仅从本行像素点对应的空间位置开始,向远离视点的方向去找,就完全能达到要求。这就是所谓的“光线自己顺着地形爬”。
  用光线追踪来构造地形,我们还同样必须有地形高程数据表。应注意到,在这种算法中,对“光线碰到障碍物”的判断是程序计算的核心。所谓的“障碍物”,当然是指地表。其实质上是一个屏幕坐标与世界坐标的转换问题。
  
  三、多边形法的分析
  
  这种方法中所用的多边型几乎都是专指三角形。因为三角形有许多优越之处,例如在绘制效率上。而且我们知道,任意不在同一条直线上的三个点都能构成三角形,这对于在空间中形成某种复杂图形是很有益处的。所以,如果我们想得到一个矩形,最有效率的是绘制两个相同的合并的三角形,这样要优于直接绘制一个矩形。
  用三角型来表示一个地表曲面的理论基础是:把地表分割成多份显示网格。在显示网格足够密、其尺寸足够小的情况下,每个网格曲面都可以看作一个平面的近似。把各个小的网格平面再分解为若干个三角形。通过D3D的绘图函数在一帧中绘出所有的三角形,即完成了地表曲面的三维显示。
  使用D3D工具来生成并显示地形是一个相当复杂的过程,正确填充顶点缓冲区是技术的关键。顶点缓冲区中存放的是各三角型顶点的几何信息,如空间位置、法线向量、颜色值、纹理坐标等。填充顶点缓冲区的过程就是几何体的模型构建过程。
  
  四、结论
  
  综合这几种地形构建方法,可得出如下结论:
  1.由于图像的方法还处于理论研究阶段,实用价值尚不大。
  2.光线追踪法在处理细节与纹理上都有困难。著名的游戏《三角洲部队》在地形处理上第一代时用了多边形法,第二代时试用了光线追踪法,而在第三代时放弃了光线追踪法,又转为多边形法就证明了这一点。
  3.多边形法是目前最成熟的方法,它不仅受到了DirectX与OpenGL的完全支持,而且从事这种方法的研究人员与资料也最多,是地形构建的主流方法。
  
  参考文献
  [1]李志林,朱庆.数字高程模型.武汉:武汉大学出版社,2003.
  [2]吴立新,史文中.地理信息系统原理与算法.北京:科学出版社,2003.
  [3]RenatoPajarola.OverviewofQuadtree-basedTerrainTriangulationandVisualization.UCI-ICSTechnicalReport,2002(1).

转载注明来源:https://www.xzbu.com/8/view-8736230.htm