2023年-虚拟社区漫游系统的设计与实现.docx
《2023年-虚拟社区漫游系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《2023年-虚拟社区漫游系统的设计与实现.docx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、虚拟社区漫游系统的设计与实现(场景建模)摘要虚拟现实技术是由计算机产生,通过视、听、触觉等作用,使用户产生 身临其境感觉的交互式视景仿真,具有多感知性、存在感、交互性和自主性 等特征。虚拟现实建模语言VRML被用来描述三维物体及其行为,可以构建 虚拟世界。VRML的基本目标是建立互联网上的交互式三维多媒体。VRML的 出现使得虚拟现实像多媒体和互联网一样逐渐走进我们的生活。本文主要研究基于VRML的虚拟场景建模、交互、漫游技术,根据虚拟 设计及其主要特点,结合3D MAX和Cosmo Worlds,对基于VRML的虚拟现 实技术在人们生活领域的应用进行了研究,着重阐述了如何利用VRML语言 以
2、生动的模型来模拟和显示现实三维空间,最终以人机交互方式来实现社区 三维景观的实时漫游。对建筑楼群的建模采用3D MAX三维造型工具和 VRML相结合的方式,对这些模型进行优化。同时为了增加真实性,在虚拟 社区中加入树木、游人、汽车等模型。这些模型共同构建整个虚拟三维场景, 为市政规划建设提供一个科学简便、形象直观的可视化人机交互平台。关键词:虚拟现实,VRML,场景建模,虚拟漫游1.2基于VRML的虚拟场景构造工具及VRML浏览器1.2.1 文本编辑工具VRML用ASCH文本格式来描述境界和链接。因此,可以用写字板或其 它的文本编辑器来编写VRML程序(保存时要以*.wrl为后缀名)。但对于一
3、个 虚拟的三维场景来说,它是由声音、图像、材质等复杂文件组合而成的,一 个单独的*.wrl文件不能轻易地实现它。因此,便需要一种工具把这些文件归 纳在一个工程中(即一个文件夹)。这样的工具很多,最常用的是VrmlPad工 具。VrmlPad工具对各个节点、域设置了层次,并提供了高亮度显示,用户 可以很方便地组建、查看、调用工程中的各种文件。1.2.2 三维建模工具上面的文本编辑工具在构建三维模型时有两个重要缺陷:一方面不能提 供可视化界面;另一方面对于不规则的复杂物体常常要求编辑大量的、繁琐 的文本、数字。对于第一个问题,许多所见即所得的VRML制作软件已经出现。其中, Parallel Gr
4、aphics 公司推出 了 一 系列的 VRML 制作工具 一Internet Scene Assembler(ISA) Jnternet Space Builder(ISB) Internet Character Animator(ICA)o 这3个工具各有侧重,ISB侧重于空间建模,ISA侧重于场景组合,ICA侧 重于动画。结合使用它们可以快速生成VRML文件。虽然它们不支持 VRML2.0的所有功能,但它们的易用性给生成复杂的三维实体提供了方便。 尤其是ISB,它虽然不支持复杂的动画,不支持行为、事件的操作(这些可由 ICA、ISA完成),但由于它结合了可视化操作和VrmlPad工程的优
5、点,从而 成为虚拟现实建模的可靠工具。3D MAX当今世界流行最广的三维动画造型软件,它所具有的把三维模 型输出成VRML格式(利用其Import和Export方法)的功能使其成为VRML 的最好助手。但是,3D MAX中对物体描述的精度大大高于VRML的要求, 它包含了很多造型的细节,这些都是VRML不需要的。过细的要求不可避免 地造成了巨大的文件量,这影响了文件装入内存后的导航速度和性能,使文 件的下载时间过长。因此,可用一些特殊的方法来削减文件的大小,提高执 行速度。这些方法包括:在建立的几何体中减少分段数;从场景中删除看不 见的面和隐藏不需要的面;使用关联复制等。1.2.3 VRML
6、浏览器和HTML一样,VRML虚拟场景源程序文件也是由网络传输,浏览器解 释、执行和呈现的,只不过VRML源程序文件在浏览器上产生的不是静态的 平面结构,而是动态的立体场景,支持VRML文件的浏览器常见的有 Microsoft VRML 浏览器、Parallel Graphics 公司的 Cortona VRML Client 浏览 器、SGI 公司的 Cosmo Player 浏览器、Blaxxun 公司的 Blaxxun Contact 等。第2章虚拟场景建模分析VRML是第二代Web上的关键技术,是一种三维场景的描述性语言,也 是在Internet网上实现虚拟现实的关键性技术。它的基本原
7、理是用文本信息描 述三维场景,在Internet网上传输,在本地机上由VRML的浏览器解释生成三维 场景,解释生成的标准规范即是VRML规范。正是这种思想使得在Internet上传 输很少的数据,就可以在Web上实现三维虚拟场景浏览成为可能。因此,VRML 可以生成网络上的三维场景。虽然JAVA技术现在支持三维场景的创建,但是 我们知道使用JAVA3D创建虚拟场景不是那么容易的事情,和VRML相比它的 开发周期较长,也没有VRML技术那么成熟。可见,采用VRML技术构建虚拟 现实环境有下面几个好处:丰富了媒体表现形式、改善了虚拟环境的用户界 面、增强了虚拟环境的交互性。2.1 场景的建模2.1
8、.1 节点虚拟境界由对象构成,对象及其属性用节点(Node)描述.所以节点是构 成VRML文件的基本单元。从层次结构上可以把节点分成三种类型,组节点、 子节点和属性节点,节点名的首字母大写,而域名都用小写字母表示。VRML的每一个节点都有零或多个域(field),域值决定了该种节点类型 的对象在虚拟场景中的状态。节点类型大都具有接收和发送的事件(Event) 的能力,其中事件入口是节点接收事件的逻辑接收器,事件的出口是节点产 生事件的逻辑输出端。外露域(exposedField)是域、入事件、和出事件的统一 体,它既可作为域确定节点的状态,义作为事件入口接收事件,还能把变动 的值送往其它节点。
9、本系统中涉及的主要造型节点包括Transform节点、Shape节点、 Appearance 7?点、Material 节 点、IndexedFaceSet T 点、Background 节 点、 Billboard节点和Anchor节点等。2.1.2 造型节点的层次结构本系统中将组节点(Transform)作为基本造型节点,children域中的造型节 点(Shape)包含外观(Appearance)和几何(geometry)节点;Appearance节点包 含材质(Material)节点和纹理(texture)节点;每个节点又包含若干个域。本系统中,IndexedFaceSet节点用于所有
10、的建筑以及车辆、人物的建模, IndexedFaceSet节点用来创建建筑物等的复杂的面,在真实的场景中,建筑物 往往不是标准的立方体,用BOX节点造型不足以体现虚拟建模的真实性。所以 在本系统中,利用IndexedFaceSet节点构造复杂的折叠面,可以完成建筑外部 的一些复杂设施和室内造型,例如建筑外的空调平台和室内的房梁等。图2T 即是利用索引面集构造的建筑外部装饰,这类造型是通过普通的三维形体造 型节点所构建不出来的。图27建筑外部多边形结构图通过上述分析得出,我们可以用Shape节点创建虚拟场景中的全部三维造 型。这些造型包括基本几何造型以及文本、点、线面方式构造的任意几何造 型。2
11、.1.3 节点之间的关系节点之间的关系分为父子关系和编组关系两种:(1)父子关系。如上所述,父子关系是根据节点语义定义的通过特定域 包含特定节点而形成的上下层次关系。(2)编组关系。通过组节点(Grouping Node)把一组子节点组织起来,从而形成编组关系。编组节点有 Group、Anchor Billboard Inline、LOD、Transform等8种。例如Group节点的children域,它是一个MFNode类型的域,蹋来包含多个 子节点。GroupeventinMFNodeaddChildreneventOutMFNOderemoveChildrenexposedField
12、MFNodechildren |SFVec3fSFVec3fbboxCenter 0 0 0 #(-8, 8)bboxSize-1 -1 -1 #(0, 8)or-l, -1, -1)由此可知,利用编组节点的功能,可以把大型三维虚拟场景的结构组织 得更为有序。2.1.4 大型场景的数据组织(1)应用编组节点VRML提供了8种类型的编组节点,用于把共同完成某一功能的节点组合 在一起(图2-2)。Group节点用于对象的群组;Transform节点则是把对象组 合后再一起进行坐标变换。如果把子场景看作子节点,那么我们可通过内联 节点(Inline)实现各场景的调出,对大场景而言,可明显提高绘制速度
13、。本系统中,由于后期场景丰富的需要,以及系统快速读取的需要,要将 一些模型建立在另外的.wrl文件中。本系统中的人物造型作为较复杂的造型, VRML文件会非常庞大,并且难于管理。并且系统读入时检测此内联的人物 造型是否会出现在默认的视点视界中,当此人物造型有效时,此模型才被描 述出来,否则将不再描述,这样节省了系统资源。Transform children Inline #内联节点urlmale2.wrl#内联的人物造型translation -63.5449 -2.33356 -88.6001#对于male2.wri中造型位置的修改rotation 0 1 0 2.09439 scale 2
14、.22902 2.22901 2.22902图2-2编组节点对场景的组织(2)层次细分对由多物体(又称实体)组成的复杂大场景,必须把场景分解成单个造型 单元。分解的方法,首先把大场景按分布的区域划分成许多子块,子块尽 可能规则,以利用建模后再组合成大的场景块;其次对某一具体的造型,如 本系统中的某一建筑模型,可以从外向内进行分解,将屋顶的建模作为一个 单独的部分,外墙的建模作为另一个部分;在VRML中通过分组节点和造型 节点把分解的场景建模后,用分组节点再组合成大场景。这样就简化了单个 造型的工作量,可以一部分一部分的建模,提高了工作效率。如图2-3所示, 在VRML文件中的具体体现是树型嵌套
15、结构。图2-3场景的分层结构和对应的分组节点2.1.5 建模流程在3D MAX中构造基本模型。以社区景观为内容的建模工作既复杂且量 大,若全部采用编写VRML代码的方法去完成,易出错且效率低。因此在 构造虚拟场景时期,使用一些三维建模工具可以大大地提高开发虚拟现实系 统的效率。本项目选用三维软件3D MAX来搭建基本场景,其优势是能够快 速高效构造复杂的三维模型,并设定材质、光效和动画,同时兼有输出.wrl 格式的功能,这一点对提高建模效率非常有用。在VrmlPad中编辑。VrmlPad是一个很出色的虚拟现实文件专用编辑器, 不仅有利于提高代码编写效率,而且还提供程序调试功能,是完成复杂虚拟
16、场景必不可少的利器之一。从3D MAX输出的VRML文件,虽然已包含建 立好的建筑模型、环境模型、人物模型等,但是由于交互行为不足,所以还 应该打开生成的.wrl文件,加入指定路线漫游和一些基本的动态交互功能 以完善系统功能。并利用上面讨论的造型节点层次细分和编组节点对场景对 象的相应代码做进一步的组织、校验和完善。2.1.6 场景的建立如前述,VRML本身就是一种建模语言,但对于一个庞大场景,通过一 行一行代码的编写来完成是一件困难的事情,于是就产生了各种创建VRML 场景的工具,本课题主要采用3D Max和VrmlPad。利用3D Max创建VRML场景的主要步骤如下:(1)场景平面图。从
17、系统的分析和总体设计可以看出,对场景进行合理 的布局是至关重要的。在AutoCAD中绘制场景布局的平面图(文件格式 为.dwg,可导入3D Max),定位道路、楼群和其他建筑物。该图是场景合理 布局的基础。(2)纹理采集。采集纹理图片数据,包括成纹图片、门窗图片、草地图 片等。对所采集的纹理图片,在Photoshop中将其处理成可无缝平铺的贴图。(3)3D Max构建场景基本模型。VRML通过节点来描述场景实体,3D Max 可以将其环境中的模型以VRML的格式输出。即将各个三维模型转化为相应 的节点,以便为相应的浏览器解释并绘制。以人物造型为例,输出的VRML节点如下:#VRML V2.0
18、utf8DEF manOl Transform #定义manOl造型children Shape appearance Appearance material Material #此处省略了纹理描述 )geometry DEF manOl-FACES IndexedFaceSet #man01 面部索弓I 面集 coord DEF manOl-COORD Coordinate point . coordindex .ccw TRUEsolid FALSEnormallndex texCoordlndex )translation -15.14 -43.33 -42.11rotation -1
19、0 0 1.571scale 4.131 4.131 4.131)其中,Translation为标准的VRML节点,children域中定义了Shape.它是 一个manOl的面部。由此可见,3D Max的人物细节造型对应了VRML相应的节 点。(4)引入需要的VRML节点但是有一些VRML节点在3D Max中并不能被直接通过3DS的实体模型创 建出来,需要向这个3D MAX场景中插入图标来引入相应的VRML节点,其 中包括了Anchor、ProxSensor Navlnfo Fog Sound LOD TouchSensor, Timesensor, Background、AudioClip
20、、Billboard、Inline共 12个节点。本系 统中的树木造型全部采用Billboard节点,采用此节点的好处是用此建立的树 木模型其正面永远对着替身视点,不用建立多个面并导入多张贴图,达到节 省系统资源的作用。2.2 场景对象的优化要使3D MAX中导出的.wrl格式的文件转入VRML环境后达到比较理想 的效果,需要应用一些技巧来优化VRML虚拟对象。在场景模型构造环节, 建筑物的建模是关键。精细建模因文件量过大会导致网络传输和绘制困难, 而用数码相机拍摄建筑实体图像再将其作为纹理映射到建筑物模型上,则可 行性不大。为此,我们在比较各种建模方法的基础上,兼顾文件量和真实感, 提出建筑
21、物的二次建模方法。下面分别从建筑物的二次建模、场景模型构造 和VRML文件编辑三方面加以讨论。2.2.1 建筑物的二次建模方法建筑物的建模要达到理想效果,归根结底是要克服复杂度与真实感这一 对矛盾。二次建模的思路是:首先在三维软件中对建筑进行精细建模,赋以 材质及纹理,然后对所需的纹理进行渲染输出,经图像处理软件处理后生成 包含细节(如窗框、装饰条等)的纹理;再对原建筑结构进行分解,用外轮廓 线(Outline)加拉伸(Extrude)或放样(Loft)生成分段数为1的简单几何体,最 后,用包含细节的纹理映射到简单几何体上,完成建筑的构建二次建模 的流程如图2-4所示。图2-4二次建模流程图2
22、.2.2 建模环节的其他优化方法(1)应用实例复制:实例复制对象在VRML代码中只定义一次,可在场景 中多次使用同样的几何体定义,而文件的大小不会增加。能够节省编写代码 时间,同时可以使文件大大地变小。在场景中用DEF定义人物和树木造型,完成造型的建模后,在其他地方需要相同的造型时,只需要USE使用这个造型并重新定义translation即可。DEF tree Transform Transform Translation 1 0 0children USE tree)(2)使用多细节层次模型技术;根据物体与观察者之间的距离,选择同 一对象的不同细节版本。合理设簧VRMLExport对话框参数
23、:此面板中参数 的设置将直接影响到VRML文件的大小。例如在3D MAX导出模型时-,对参 数Digits of Precision由缺省的4设置为3,可减少场景的总文件量,但对测览 无太大影响。(3)对导出限制的了解:在3D MAX中应用VRML97Exporter对话框导 出.wrl格式的文件时,并不是所有的3D MAX中的对象和元素都能导出到 VRML中,下面列出了部分能导出和不能导出的场景元素:能导出:几何图形、隐藏对象、光颜色、反向动力学、标准材质及多重 子材质;不能导出:光滑组、隐藏面、体光、继承链接、其它类型材质。通过对可导及不可导的了解,可帮助我们在建模过程中知道哪些对象在 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 虚拟社区 漫游 系统 设计 实现
限制150内