虚拟城市是综合地运用GIS、遥感、遥测、网路、多媒体及虚拟仿真等技术,对城市内的基础设施、功能机制进行自动採集、动态监测管理和辅助决策的数位化城市。 长期以来,城市规划人员的一个重要的工作就是进行各种设计或规划图的绘製,但是这些图纸并不能给人们提供一个直观的、富有真实感的场景。虚拟城市的建立能够全方位地、直观地给人们提供有关城市的各种具有真实感的场景信息,并可以以第一人称的身份进入城市,感受到与实地观察相似的真实感。
基本介绍
- 中文名:虚拟城市
- 特点:第一人称的身份进入城市
- 定义:运用GIS及虚拟仿真等技术
- 首先:要建立三维城市模型
简介
虚拟城市是综合地运用GIS、遥感、遥测、网路、多媒体及虚拟仿真等技术,对城市内的基础设施、功能机制进行自动採集、动态监测管理和辅助决策的数位化城市。
长期以来,城市规划人员的一个重要的工作就是进行各种设计或规划图的绘製,但是这些图纸并不能给人们提供一个直观的、富有真实感的场景。后来,人们虽然也使用纸板或木料来製作三维模型,以实现城市景观的三维可视化。但其製作的工作量巨大、费用昂贵、须具备较高的製作技巧,而且仅能从外围观看,无法进入,修改也很困难。鑒于以上原因,在计算机上建立三维虚拟城市成为必然。虚拟城市的建立能够全方位地、直观地给人们提供有关城市的各种具有真实感的场景信息,并可以以第一人称的身份进入城市,感受到与实地观察相似的真实感。虚拟城市的各种模型易于修改,而且可以实现城市信息的查询与分析功能。这些都是传统的方法所无法比拟的。本文用製作实例的方式探讨了虚拟城市的开发技术。
开发的基本原理
要建立虚拟城市,首先要建立三维城市模型。三维城市空间中的典型实体对象一般具有以下几种:城市中的各种建筑物、街道、绿地、公共场所、城市地形、树木等。除此以外,还有一些辅助性的设施,如消防栓、变电站、喷泉、公园的长椅等。这些模型的製作可以採用编程的方法或者现有的三维模型製作软体来完成。所谓编程的方法是在程式中利用三维空间中的坐标点和图形绘製函式来实现模型的建立,由于城市模型的造型十分複杂,因而很难确定模型的具体几何数据,此方法多用来製作地形模型,对于其他模型的製作则很少採用。製作城市模型的最好的方法是使用现有的成熟的三维设计软体,如:3DSMAX、TRUESPACE等。
定义为以下公式
虚拟城市除了能实现城市信息的三维可视化外,其另一个重要的功能就是能实现城市专题信息的查询功能,甚至实现一定的分析功能。可以将虚拟城市定义为以下公式:
虚拟城市=三维城市模型+专题信息+查询功能+分析功能
可考虑以下两种方案
一种方案是利用高级语言和三维图形开发库的方法,常用的开发语言是C++,常用的图形开发库是OpenGL3D或者 Directx3D。此方法的特点是开发的灵活性强、能实现功能複杂的套用系统。其缺点是开发者须熟练掌握编程技术,并且具备较高的计算机图形学知识。另外,还要学习OpenGL3D或者 Directx3D的複杂开发技术。此方案的实现难度大,一般用户根本无法胜任。其实现的套用系统也很难满足网上使用的要求。
第二种方案是使用专用的三维虚拟开发工具,广泛使用的是VRML语言。VRML(虚拟现实造型语言)是一种描述互动式三维世界和对象的档案格式。VRML允许描述对象并把对象组合到虚拟场景中,可以实现仿真系统,可模拟动画、具有动力学特性的物体。VRML能构造一个全互动的世界,其中的对象能对外部事件做出回响,并可在其中任意穿行。另外,其重要特性是支持虚拟场景的网上发布,并可实现多用户的实时参与。VRML比高级语言容易掌握,并且无须再去了解OpenGL3D或者 Directx3D之类的三维图形开发库,这对于普通用户来说无疑是一个福音。若配以Java程式的支持,也可实现功能较强大的系统。
三维城市模型的建立
虚拟场景的建立和建筑CAD中的场景的建立有着很大的区别,它首先强调的是模型的简单化,这是由虚拟现实的实时性要求决定的。在回响速度和场景的真实性发生冲突时,应牺牲一定的真实性,只要能在视觉上达到基本真实即可。因此,常用一些简单的框架来代替複杂模型,但为了保证一定的真实性,可採用贴图的方式来弥补视觉上的不足。贴图有以下两种製作方法:一种是使用绘画软体进行手工绘製、另一种是对建筑物的各个观察面进行拍照,然后用扫瞄器扫描成相关贴图材质。第一种方法的颜色可限定在256色内,其压缩的比例较大,贴图档案较小,生成的场景档案也较小,适合网上传递和实时性的要求。后一种方法视觉效果好,但档案的压缩比例较小,贴图档案较大,生成的场景大,在网上传递和实时性方面不如前一种方法好。无论用哪一种方法都需考虑贴图的解析度和尺寸,为了便于下载和渲染,在质量和大小允许的情况下,一幅贴图限为320*240(或240*320)像素、解析度为72dpi,用JPEG压缩(採用最高压缩比)后约为20K位元组。
对象模型的分类
根据以上所述的贴图製作方法,虚拟场景中的对象模型可分为以下几类:
(a)由简单几何体组成的简单模型:该类模型常用作远处建筑物的替身,在LOD方法中採用;
(b) 赋予手绘贴图的模型;
(c) 赋予照片材质的模型;
(d) 赋予手绘和照片混合材质的模型;
(e) 具有全部细节的精緻模型;
互动查询功能的建立
为虚拟城市模型加入互动和查询功能可採用两种方法:通过编程加入相应的互动和查询功能、利用VRML的辅助工具来完成互动和查询功能的加入。后一种方法比较适合普通的用户。
Kinetix製作了特殊的VRML输出嵌入程式,可以输出场景,包括几何、材质、动画製作等,嵌入程式也可製作特殊的VRML辅助工具来规定场景的互动元素。运行VRML嵌入 程式VRMLOUT.EXE即可安装VRML嵌入程式。
通过VRML嵌入程式,可设定以下辅助工具:
Anchor:可将某一实体作为热点,当被点击时,取出网上所指定的档案。若为VRML场景档案,则该场景被下载显示。若为其他类型档案,由浏览器决定如何处理;
TouchSensor:对从指定设备的输入产生相应的事件,这些事件表示用户是否指向特定几何体,同时也表示用户何时何处按下定位设备的按钮;
ProxSensor:接近感知器,指定当用户进入、离开或在立方体的区域内移动时产生的事件;
TimeSensor:在时间变化是发出事件,可用来控制动画,也可用于某一时刻进行某项活动,或于某一时间间隔中产生事件;
NavInfo:描述有关观察者和观察模式的物理特性;
Background:设定场景的背景;
Fog:设定雾化的效果;
Sound:设定声音片段的有效範围,以产生随距离改变的音响效果;
Billboard:是某一对象随用户一起旋转,以使之始终面向用户;
LOD:允许浏览器在物体表示的不同层次细节间自动切换;
Inline:可在档案中引入外部档案的场景,避免重複製作。
通过以上辅助工具,就可製作出虚拟城市场景及其互动和查询功能。
若干开发技巧介绍
减少档案大小的方法
(1) 使用实例:对于在场景中多次使用的对象,可在该对象首次使用时用DEF给物体命名,以后仅需通过名字即可引用该物体。
(2) 使用原型:原型物体是指那些使用频繁且改动不大的物体。使用它可减少档案的大小。由于使用了DEF/USE方法,物体一旦定义,只要指定发生变化的公共接口即可。另外,原型显示出场景层次中哪一部分可修改,浏览器可自由地最佳化那些不修改的部分。
(3) 压缩档案:在发布档案前,使用gzip工具压缩VRML档案和相关的HTML档案,大约可是档案减小10~100倍。
提高渲染速度的技巧
(1) 简化场景:简化场景有以下方法:
·减少多边形的数目,这可极大地提高执行的性能;
·使用纹理代替多边形造型,既可美化场景又可提高性能;
·使用灰度图的纹理;
·儘量少用光源,这将有效地提高渲染的速度;
·使用布告板节点,此节点允许在场景中使用二维图象来模拟三维造型并旋转,从而始终面对观察者。此法既减小了档案又不影响真实效果,可用来製作树木、电线桿、路牌、消防栓等辅助性对象;
(2)场景分割:将大的场景分为多个相对独立的小场景,通过Anchor节点为场景中逻辑上分离的部分建立连线关係;
(3)自适应LOD节点:若在LOD的range域中未明确指定具体值,浏览器会在给定时刻决定哪一层物体需要显示。该节点允许根据硬体平台的能力调整场景的细节程度。在建立一条街道时,由于街道两边有许多精细的建筑物,要对它们进行实时渲染是不可能的,但又不能不可见,仅需让用户能以一定的速度前进即可。在此,可为每个建筑物建立两个LOD节点,一个是没有明确範围的外部LOD,另一个是具有near和far範围的内部LOD节点。内部节点能按建筑物与摄像机的距离调整层次,外部"自适应LOD"节点允许浏览器调整必要的多个建筑物以赶上场景的动态变化。
(4) 碰撞检测要花费大量的处理时间,为提高对複杂物体的碰撞检测速度,可在Collision节点的proxy(替身)域指定某一更为简单的几何体作为该形体的替身,它与被替代的原形体占用大致相同的空间。这样,可大大减少检测时间。
总结
以上介绍了虚拟城市的基本原理和製作技巧,对于进行其他领域的虚拟现实套用製作同样有效,仅为场景中实体的不同。用VRML製作虚拟现实入门容易,但要达到很高的视觉效果和运行速度并非易事,须对VRML和图形学进行深入了解才可胜任。我们用它製作了虚拟校园,其运行效果较为满意。可以相信,随着VRML的不断发展,我们将可用它製作出功能更加强大的虚拟现实套用。
相关游戏
中文名称: 虚拟城市 英文名称: Virtual City 游戏类型: SIM 模拟经营类游戏 资源格式: 压缩档 版本: Final 发行时间: 2009年 製作发行: Brightstar Games 地区: 瑞典 语言: 英文
简介】 在虚拟城市的世界中,你最重要的事情就是尽你所能将整个城市做出最好的建设及管理。不管是为无家可归的人们提供住所,还有提升城市的医疗系统,或是为维护城市的环境而努力。建立您的梦想的城市 - 天堂住宅区或工业中心。建立住宅和工业楼,生产商品和提供他们的商场。安装集体运输系统採取的市民公园,电影院和体育场的地方。 让您成为一个更美好的生活垃圾的回收,增加医院和消防局,种植树木,建筑物和升级,使其更加环保。使公民通过发射壮观的公共活动快乐。与周边城市的贸易,完成码头等,列车站的标誌性建筑建设,飞船发射台。帮助陷入困境的城市回到繁荣,经济不景气,人口危机处理,以及自然灾害的后果。关键参数之间实现您的成功:时间,收入,环境,人口,和幸福的平衡。 另外,你还要为城市制定一些有利的政策,可以强制使人民更爱惜现有的城市。当然在经由你的努力之下,让城市会逐渐发展,也会增加一些税收收入,可是好还要更好,你要投入更多的资金在研发新的公共建设上,让你的城市更可以变成你心中的理想大城市。在这里你最主要的目标就是打造一个人见人爱的理想城市,不过凡事并不会都尽如人意,因为一些的天灾人祸,就会阻碍你达成目标,因此,如何克服一切困难,还是要考验你的管理智慧。
游戏特点
- 50级挑战,在5设定:科罗拉多州,加利福尼亚州,密西根州,蒙大拿州,纽约 - 18鲜明的任务环境 - 免费播放模式5大砂箱地图 - 50多个各类建筑物 - 25种商品的运输和贸易 - 7生产链的主 - 16赚取特别成就 - 数以万计的升级和解锁建筑物
最低系统要求
#Windows 2000/XP/Vista/7 #DirectX 9 #800 MHz
#256 MB RAM