我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>行业资讯>行业知识

基于三维GIS的虚拟现实数字城市实现方法研究

文章来源:搜维尔[SouVR.com] 作者:Frank 发布时间:2011年07月07日 点击数: 字号:
Aono等提出了A-系统;Oppen-heimer提出了基于分形技术的树木建模方法;Reeves提出了基于粒子系统的树木建模方法;Reffye等提出了基于蕾变化的忠实于树木真实结构的建模方法;Weber等提出了树木的分步生长模拟方法;Prusinkiewicz等提出了基于L-系统的树木生长模拟方法。

    A-系统中提出的一致偏离和非一致偏离算法用来模拟重力和风力对树木形状的影响;分步生长模拟方法中提供了对风力、重力、裁剪等基于参数控制的模拟方法;开放的L-系统是对L-系统的扩充,提供了对裁剪、树枝空间资源竞争等因素的模拟。

    下面主要概述目前常用的方法。

    1、基于Billboards技术

    在一个空间长方形区域用树木图像进行纹理贴图来表达树木,然后应用Billboards技术,使长方形始终平行于视平面,即跟着视点转动。这种方式简单,且具有较高的观赏性。但由于其实质是在一个空间长方形区域上通过融合方式粘贴树木图像,因此,这种处理的结果是将具有三维空间复杂特性的树木对象以一个空间长方形替代,树木只有一定的位置,而失去了其它空间特性,同时这种模型近视点效果不够理想。

    2、基于分形方法

    分形几何学是研究无限复杂但具有一定意义的自相似图形和结构的几何学。由于树木具有很强的自相似结构,因此可以运用分形方法进行表达。

    基于这种思想的植被专业建模软件已大量出现,如Xfrog,应用面向对象的建模技术;Lparser系统,基于重写和L系统的建模技术;the Green tool,应用面向对象和随机L系统的建模技术等。但这样建立三维模型数据量相当大。特别是树木的小细节部分,树木一般分为两大部分,一部分是树干和大树枝,另一部分是树叶和小树枝,如图    3-21树木的第一部分有200个三角形(如图    3-21a),树木的第二部分有8093个三角形绘制小树枝,11564个三角形绘制树叶(如图    3-21b)。因此研究者们提出了很多简化第二部分的算法。这些算法的基本思想是采用贴纹理图加融合技术。

 

图3-23 由分形技术生成的树干与树枝
图3-23 由分形技术生成的树干与树枝

    三、道路的三维建模

    道路在这里可以抽象为两大类。一是连续带状实体模型:如路基、路面结构、桥梁上部结构、护栏、连续路面标线、人行道等;二是离散建筑物实体模型:如路灯、桥墩、栏杆、交通标志牌等。

    带状实体的建模,用空间四边形平面来模拟,只要确定每个四边形平面的4个顶点的三维坐标,就能完成三维模型的建立;或者采用三角剖分等。这一部分建模的难点在于与地形的叠加,这将在后面描述。

    离散建筑物的建模,一般采用纹理贴图加融合的技术实现,或者通过第三方软件创建。
 
    3.3 系统数据建模

    SUV文件中可以三维虚拟现实的地物主要为地形、房屋、植被、道路、水系等。下面将主要针对这些地物,概述它们的三维简单建模思想。

    地形

    所需要的数据为矢量等高线数据或直接为TIN数据。如果是矢量等高线数据,还要完成地形模型的建模。

    数字测图系统可以根据等高线数据生成TIN文件。三维虚拟现实地形,只需读取*.TIN文件,获取地形的坐标值,即三角形序列坐标值,根据这个坐标值,可以计算每个顶点的纹理坐标值,然后应用OpenGL的绘制函数并将地形进行纹理贴图,就可以将地形三维虚拟现实见下图。

基于三维GIS的虚拟现实数字城市实现方法研究

    房屋

    房屋,基本构成为墙面和屋顶。SUV文件中房屋为由一系列的点构成的多边形区。构成三维房屋墙面的算法为:每相邻两点构成一条边,每条边成为房屋一面墙的底边。如图    3-41所示:平面图上房屋由点m1,m2,m3,m4……等一系列点构成。则由m1,m2构成的墙面为m1,m2,m1’,m2’。通过读该房屋的属性,获得该房屋的楼层数storey。则该房屋的高度值h等于storey*2.5(假设每层楼高为2.5),默认设置每层楼的高度为2.5。如果点m1的坐标为(x1,0.0,y1),m2为(x2,0.0,y2),则m1’的坐标为(x1,h,y1),m2’的坐标为(x2,h,y2)。其他墙面依此类推。

图3-23 由分形技术生成的树干与树枝                       3-42 平房屋顶构成图
3-41 房屋墙面构成图                            3-42 平房屋顶构成图

    SUV文件中房屋为由一系列的点构成的多边形,这些多边形大多是不规则的,有的凸,有的凹,但OpenGL直接绘制多边形的函数只能绘制凸多边形。凹多边形必需处理为凸多边形再绘制。OpenGL中有将凹多边形网格化(即将凹多边形处理为凸多边形)的函数和绘制处理后的凹多边形的函数。系统中绘制三维房屋屋顶的算法为:用OpenGL的函数绘制这些多边

共8页 您在第6页 首页 上一页 1 2 3 4 5 6 7 8 下一页 尾页 跳转到页 本页共有2899个字符
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料