欢迎来到天天文库
浏览记录
ID:26927797
大小:49.50 KB
页数:5页
时间:2018-11-30
《基于vrml的三维虚拟校园的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于VRML的三维虚拟校园的设计与实现摘要VRML是可以用来创作桌面虚拟现实系统的建模语言。本文在介绍了VRML的基础上,以南通大学三维虚拟校园为例,讨论了虚拟场景的构建技术,介绍了一些常用的建模的方法。关键词虚拟现实;VRML;虚拟校园0引言VRML(VirtualRealityModelingLanguage),是一种用于描述交互式三维空间的虚拟现实建模语言。借助VRML,可以建造虚拟的房间、建筑物、城市甚至星球等现实中的和想象中的事物;可以编写小程序来控制虚拟空间,赋予浏览者和虚拟空间进行交互的能力。VR
2、ML制作的三维空间是以文本文件的形式保存的,由已安装过插件的浏览器来解释展示。文件短小的特点使之能够很方便的在网络上进行传输。因此,这一语言为软件实现网上的虚拟现实系统提供了重要途径。构建网络上的三维虚拟校园就是VRML的一个有效应用。1VRML要点VRML是解释展示的,浏览器就是其解释器。为了使IE浏览器能够支持VRML,需要安装相应插件。一种比较流行的插件是Intervista公司的L使用场景图数据结构来建立3D实境,这是以SGI的OpenInventor3D工具包为基础的一种数据格式,其基本单元被称为节点
3、,场景图规定了节点之间的等级关系与嵌套关系。VRML总共定义有54个节点,它大致可以分为如下几类:●造型节点:用于表示各种基本的几何体和用于任意几何体的线框图和面框图。●属性节点:用于定义相关对象的颜色、材质、纹理以及摄像机组、灯光组、视点、背景等。●组节点:用于将节点分组,把相关节点组合成为同一个对象。●感应节点:用于感知用户的输入或动作,以触发相应的动作。●其它节点:包括移动和旋转动作,脚本(Script)节点、超链接节点等。每个具体节点都包含有一个或多个域(Field),VRML对域名、域值类型以及缺省值
4、都有规定。下面就是一个造型(Shape)节点的结构。Shape{appearanceNULL//exposedSFNodegeometryNULL//exposedSFNode}这个节点包含2个域:appearance域用于指定节点的外观,;geometry域用于指定造型的3D构造或几何构造,缺省的NULL值表示没有几何结构。VRML使用符合右手规则的三维坐标系统,原点在屏幕中心,它也是使用这一坐标系统的各种几何体的中心。所以,当根据构图要求,某个几何体的中心不在屏幕中心时,就需要移动坐标系统,即使用Trans
5、form节点,在该节点内定义的几何体都使用该节点中所定义的平移后的坐标系统。最后,在场景图结构中需要提及的Group节点,即组节点。由于VRML只提供最基本的几何体,因而,要表现一个三维对象或场景,设计者只能通过组合这些基本几何体来实现。Group节点为这种组合提供了支持。VRML规定使用“#”来标记3.3校内建筑举例——方肇周教学楼校内建筑在虚拟校园中是比较重要的建模对象,特别是对相关教学楼的建模要比较细致。在我们的设计中,对教学楼外观的建模要求较高,对于楼外观上标志性的对象进行了仔细的设计,让熟悉校园的游览
6、者一眼就能认同这就是那幢教学楼。在教学楼的建模中应该做到以下几点:●由于这个系统虚拟的是一个现实存在的环境,为了取得较真实的效果,现实存在的楼在虚拟环境中都应该进行建模。●为某一楼宇建模时,要尽可能的利用重用机制简化程序代码。这一方面可以减少工作量,另一方面可以减轻浏览器负担,提高浏览速度。●选择校园中的典型楼宇作细化场景,其它楼可进行复制,或稍做修改。教学楼的建模是一个较复杂,较大的场景,需要将整个教学楼分割建模,例如:窗户、单个房间、由多个房间构成的楼层、由多个楼层构成的大楼。在方肇周教学楼的建模中,由于教
7、学楼的前后大部分是对称的,因此我们可以先对前面的部分进行建模,最后用rotation节点旋转,再进行修改。下面的代码描述了模型插入和旋转的运用:Group{children[Transform{Translation-6.9-8.2-3children[DEFPartInline{bboxSize5.08.02.0bboxCenter1.04.00.0url"part.{Translation-6.9-4.2-3childrenUSEPart}#对上面的建模重用Transform{Translation-3.6
8、-0.2-12rotation0103.14childrenUSEPart}#旋转]}方肇周教学楼建模的效果如图5所示。图5方肇周教学楼建模3.4植物在真实校园中,种植有大量景观植物。这一点在构建虚拟校园时也应当加以考虑。以树为例,在建模过程中可以遵循以下步骤:●节点使用Billboard,它有一项特殊的功能,就是使它的子节点永远面向观看者。●Box的设置是根据树的高低来决定的,并且要
此文档下载收益归作者所有