您现在的位置: 范文先生网 >> 理工论文 >> 计算机论文 >> 正文

虚拟城市的开发技术探讨

时间:2007-1-30栏目:计算机论文

虚拟城市的开发技术探讨

武汉测绘科技大学土地科学学院  涂超

摘要:本文介绍了虚拟城市的原理及其开发技术,阐述了虚拟现实应用开发基本手段和过程,并进一步叙述了优化应用的常用技巧。

关键词:虚拟城市,VRML, LOD

长期以来,城市规划人员的一个重要的工作就是进行各种设计或规划图的绘制,但是这些图纸并不能给人们提供一个直观的、富有真实感的场景。后来,人们虽然也使用纸板或木料来制作三维模型,以实现城市景观的三维可视化。但其制作的工作量巨大、费用昂贵、须具备较高的制作技巧,而且仅能从外围观看,无法进入,修改也很困难。鉴于以上原因,在计算机上建立三维虚拟城市成为必然。虚拟城市的建立能够全方位地、直观地给人们提供有关城市的各种具有真实感的场景信息,并可以以第一人称的身份进入城市,感受到与实地观察相似的真实感。虚拟城市的各种模型易于修改,而且可以实现城市信息的查询与分析功能。这些都是传统的方法所无法比拟的。本文用制作实例的方式探讨了虚拟城市的开发技术。

1. 虚拟城市开发的基本原理

要建立虚拟城市,首先要建立三维城市模型。三维城市空间中的典型实体对象一般具有以下几种:城市中的各种建筑物、街道、绿地、公共场所、城市地形、树木等。除此以外,还有一些辅助性的设施,如消防栓、变电站、喷泉、公园的长椅等。这些模型的制作可以采用编程的方法或者现有的三维模型制作软件来完成。所谓编程的方法是在程序中利用三维空间中的坐标点和图形绘制函数来实现模型的建立,由于城市模型的造型十分复杂,因而很难确定模型的具体几何数据,此方法多用来制作地形模型,对于其他模型的制作则很少采用。制作城市模型的最好的方法是使用现有的成熟的三维设计软件,如:3DSMAX、TRUESPACE等。

虚拟城市除了能实现城市信息的三维可视化外,其另一个重要的功能就是能实现城市专题信息的查询功能,甚至实现一定的分析功能。可以将虚拟城市定义为以下公式:

虚拟城市=三维城市模型+专题信息+查询功能+分析功能

要实现一个虚拟城市系统可考虑以下两种方案:

一种方案是利用高级语言和三维图形开发库的方法,常用的开发语言是C++,常用的图形开发库是OpenGL3D或者 Directx3D。此方法的特点是开发的灵活性强、能实现功能复杂的应用系统。其缺点是开发者须熟练掌握编程技术,并且具备较高的计算机图形学知识。另外,还要学习OpenGL3D或者 Directx3D的复杂开发技术。此方案的实现难度大,一般用户根本无法胜任。其实现的应用系统也很难满足网上使用的要求。

第二种方案是使用专用的三维虚拟开发工具,目前广泛使用的是VRML语言。VRML(虚拟现实造型语言)是一种描述交互式三维世界和对象的文件格式。VRML允许描述对象并把对象组合到虚拟场景中,可以实现仿真系统,可模拟动画、具有动力学特性的物体。VRML能构造一个全交互的世界,其中的对象能对外部事件做出响应,并可在其中任意穿行。另外,其重要特性是支持虚拟场景的网上发布,并可实现多用户的实时参与。VRML比高级语言容易掌握,并且无须再去了解OpenGL3D或者 Directx3D之类的三维图形开发库,这对于普通用户来说无疑是一个福音。若配以Java程序的支持,也可实现功能较强大的系统。

综合以上两种方法,对于功能不太复杂的应用,采用后一种方法较为合适。下面我们将就后一种方案详细介绍虚拟城市开发的技术细节。

2. 虚拟城市的开发技术

2.1.三维城市模型的建立

虚拟场景的建立和建筑CAD中的场景的建立有着很大的区别,它首先强调的是模型的简单化,这是由虚拟现实的实时性要求决定的。在响应速度和场景的真实性发生冲突时,应牺牲一定的真实性,只要能在视觉上达到基本真实即可。因此,常用一些简单的框架来代替复杂模型,但为了保证一定的真实性,可采用贴图的方式来弥补视觉上的不足。贴图有以下两种制作方法:一种是使用绘画软件进行手工绘制、另一种是对建筑物的各个观察面进行拍照,然后用扫描仪扫描成相关贴图材质。第一种方法的颜色可限定在256色内,其压缩的比例较大,贴图文件较小,生成的场景文件也较小,适合网上传递和实时性的要求。后一种方法视觉效果好,但文件的压缩比例较小,贴图文件较大,生成的场景大,在网上传递和实时性方面不如前一种方法好。无论用哪一种方法都需考虑贴图的分辨率和尺寸,为了便于下载和渲染,在质量和大小允许的情况下,一幅贴图限为320*240(或240*320)像素、分辨率为72dpi,用JPEG压缩(采用最高压缩比)后约为20K字节。

根据以上所述的贴图制作方法,虚拟场景中的对象模型可分为以下几类:

(a)由简单几何体组成的简单模型:该类模型常用作远处建筑物的替身,在LOD方法中采用;

(b) 赋予手绘贴图的模型;

(c) 赋予照片材质的模型;

(d) 赋予手绘和照片混合材质的模型;

(e) 具有全部细节的精致模型;

2.1.虚拟城市交互查询功能的建立

为虚拟城市模型加入交互和查询功能可采用两种方法:通过编程加入相应的交互和查询功能、利用VRML的辅助工具来完成交互和查询功能的加入。后一种方法比较适合普通的用户。

Kinetix制作了特殊的VRML输出嵌入程序,可以输出场景,

[1] [2] 下一页

下页更精彩:1 2 3 4 下一页