基于VRML的虚拟校园的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:liongliong506
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:基于Vrml技术完成了三维虚拟校园的设计和实现,对建模、交互控制及优化技术进行了详细的介绍和分析,为研究和探索Vrml技术在虚拟建筑展示领域的应用提供了有益的思路。
  关键词:虚拟校园;Vrml;建模;交互控制;优化
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30671-02
  Research and Implementation of Virtual Campus based on VRML
  FU Qiang
  (College of Science and Technology, Ningbo University, Ningbo 315211, China)
  Abstract:Has completed the three dimensional hypothesized campus design and the realization based on the Vrml technology, and has carried on the detailed introduction to the correlation technology and analyzes in order to study and explores the Vrml technology to provide the beneficial mentality in the hypothesized construction demonstration domain application.
  Key words:visual campus;Vrml;modeling;interactive control;optimize
  
  1 引言
  
  Vrml是一种在网络环境下描述三维模型空间,能进行交互操作的跨平台、开放式、解释性的语言,用来描述如何在Web页面上显示一个三维场景。由于具有直观、生动、逼真等二维Web页面不可比拟的优点,使用Vrml实现的三维场景展示得到越来越广泛的应用。
  本文根据宁波大学科技学院的校园规划设计图,结合Vrml、Java和3Dsmax建立了三维虚拟校园漫游系统,并将其发布在Internet上,可以使浏览者对校园实现网上实时交互浏览,使人获得身临其境的感受。
  
  2 虚拟校园的分析与设计
  
  虚拟校园的设计目标是通过网络展示宁波大学科技学院的校园风貌,访问者可以走进校园中,参观校园的自然风貌,了解科院的生活场景,在网络上了解科院。
  结合系统设计要求,我们对虚拟校园的实现方案进行了对比分析。最终方案确定为模块结构化设计:由于校园中的各个对象是通过空间相对位置组织在一起,因此可以在进行整体设计时将道路做为基本参照对象,并以此为基础放置其他对象。总体设计图见图1。
  图1 虚拟校园系统总体设计图
  系统实现的具体步骤为:首先根据实际的地理数据(借用原始平面设计图)绘制出场景平面图,并相应构建出虚拟的道路;接着我们对各个建筑楼宇、校门,人物,树木等对象分别建模实现,然后按照场景平面图的位置数据,并以校园道路作为参照,把制作的各个楼宇、校门等其他对象放在相应的位置。最后进行整体组合修正,同时结合Java实现相应的交互功能,达到最终效果。模块结构化的设计思路有利于后期的模型修改和完善,同时大大降低了建模的复杂度和系统运行对硬件的要求。
  
  3 虚拟校园的实现及相关技术细节
  
  我们将从建模、交互、优化三个主要方面来介绍虚拟校园的实现过程。
  3.1 建模
  建模技术是建立虚拟校园系统的基础。因此,首先要根据校园实际的自然风貌对校园内各个对象,如楼宇、道路、树木、花草等进行建模。通过对这些对象的建模,构建出虚拟科院校园的基础框架。
  3.1.1 复杂楼宇的建模
  复杂楼宇的建模工作比较繁琐,直接使用Vrml实现将需要大量的工作时间,并且建模的直观性和模型真实度也不容易达到要求。因此我们选用了3Dsmax作为复杂楼宇的主要建模工具。之所以选择3Dsmax,主要出于两方面的考虑:一是3Dsmax建模功能强大、方便快捷,而且还可将文件存储为Vrml格式的文件,易于使用;二是使用3Dsmax为虚拟系统创作好模型后,可利用3Dsmax自带的LOD插件直接生成对象的LOD模型,以达到文件优化效果。
  我们以艺术楼群的建模为例:首先根据平面设计图及建筑物实际考察信息绘制出草图,由于艺术楼群较为复杂,所以将其分割成四个模块以便于建模工作的展开。其次使用3Dsmax画出各个模块的轮廓,并实现相应的凹凸面、屋檐、台阶等特殊形状。最后进行材质编辑,进行上色和贴图。艺术楼的建模图和效果图见图2、图3。
  图2 艺术楼的建模图
  图3 艺术楼的效果图
  将完成的文件以优化模式存为Vrml文件,并在Vrml编程工具Vrmlpad中进行进一步的修正和处理,最终确定模型文件,留待后期系统整合调用。
  3.1.2 场景背景的设置
  为了逼真地表现虚拟现实所描述的环境,可以通过Background节点设置虚拟校园背景。常使用两种设定方式达到目的:一是通过颜色插值模拟大地和天空;二是构造背景全景图。在本系统中采用了第一种方法,实现代码如下:
  Background{
  groundAngle[0.7,1.5,1.57]
  groundColor[0 0.333 0,0 0.4 0,0 0.5 0,0.62 0.67 0.60]
  skyAngle[0.9,1.5,1.57]
  skyColor[0.21 0.18 0.66,0.2 0.44 0.85,0.51 0.81 0.95,0.77 0.8 0.82] }
  上述代码描述了这样一个背景:浅绿色的大地,淡蓝色的天空,大地和天空相接处颜色渐白。
  采用颜色插值来设置背景的优点在于:可减小文件大小,从而减少网上传输的数据量,提高传输速率及漫游效果。而且在一个较大的场景中包含的对象很多,本身就是一个比较完整的特定环境,背景可以简化处理。
  3.1.3 创建视点和游览模式
  Vrml提供了多种的视点和浏览模式,本系统选择了以飞行的方式进行浏览,这种方式的好处是可以使用户的活动比较自由及随意性,可以从各个角度察看虚拟场景。同时我们设置了两个视点,一个是真实的等高视点;一个是高空鸟瞰视点。实现代码如下:
  NavigationInfo {
  avatarSize [0.25, 1.6, 0.75]
  headlightTRUE
  speed100
  type "FLY"
  visibilityLimit0.0 }
  DEF Camera01 Viewpoint{
  position 950 40 6000
  fieldOfView 1.05
  orientation 0 1 0 0
  description "Camera01" }
  DEF Camera02 Viewpoint{
  position 950 9000 18000
  fieldOfView 1.05
  orientation 0 1 0 0
  description "Camera02" }
  效果图见图4、图5。
  3.1.4 树木、花草、路灯等的建模实现
  树木的实现采用了电子公告板节点(Billboard),此节点允许在场景中使用二维图像来模拟三维造型并旋转, 从而始终面对观察者。具体建模过程需要注意以下几个问题:
  图4 等高视点
  图5 高空鸟瞰视点
  (1)场景中树木的高度及宽度通过设置Box的属性来加以确定;
  (2)纹理图的背景要进行透明设置:将拍摄来的照片进行软件处理(如Photoshop),去除背景及空隙像素。
  通过这种方法创建的树木模型形象逼真,具有较好的视觉效果。效果图见图6,实现代码如下:
  Billboard{
  children [Shape{
  appearance Appearance{
  texture ImageTexture{
  url"tree_a.gif"}}
  geometry Box{size 50 80
  0.00001}}]}
  校园中的花草、路灯、静态人物等也可通过这种方法实现。
  3.1.5 汉字的实现
  虚拟校园中需要完成大量楼宇建筑的建模,其中楼宇的名称涉及到汉字的实现。汉字的实现方式有多种:
  可以直接从3Dsmax所生成的模型中直接导出场景中的中文字体,但这种方法生成的汉字容量比较大,会增大Vrml文件的大小,影响网络传输的速度。
  亦可使用Vrml的text节点来完成汉字的制作,不过各个楼宇名称涉及到的汉字字体较多,颜色也比较丰富,所以直接使用text节点来制作汉字比较复杂
  我们采取的方法是使用gif贴图:即把要使用的汉字用Photoshop等图像处理工具制作成gif图片,然后使用贴图功能添加到Vrml文件中。这样既可以有不错的视觉效果,又不会增加VRML的渲染负担。
  3.1.6背景音乐的选择
  给场景加入背景音乐可以增加虚拟空间的动感效果。多数的
  Vrml浏览器都支持两种格式的声音文件:wav和midi。由于midi格式音乐占用的存储空间很小,便于网上传输,因此我们选用midi格式文件作背景音乐。
  3.1.7 整体场景的合成
  整体场景合成使用内联节点( Inline)来实现。该节点可实现主体Vrml文件和外部子场景Vrml文件的自动链接。下面代码实现了将博观楼场景载入主场景的功能:
  Transform {
  children Inline {
  url "boguanbuild.WRL" }
  translation -1378 0 500
  rotation 0 1 03.14159
  scale 1 1 1 }
  3.2 交互功能的实现
  在Vrml中实现交互控制主要有两种方式:非编程交互控制及编程交互控制。
  非编程交互控制主要通过Vrml自带的传感器节点、检测器节点及路由设置完成事件的触发和传递,从而实现交互功能。而比较复杂的交互要求则需要以编程控制的方式进行,可通过Script节点(JSAI接口)或相关的Java类包(EAI接口)将Vrml场景和能够实现复杂控制的Java有效地连接在一起,通过Java辅助Vrml场景提高与内、外部环境的通信联系和融合交互能力。
  以自动感应门来说明非编程交互控制的实现:首先在感应门附近设置感知区域,检测虚拟人物是否进入该区域;然后使用时间感应器及位置插补器控制门的开关动作。原理流程如图7所示:
  图7 自动感应门的控制原理流程
  编程交互控制结合具有强大交互功能的Java语言实现复杂控制要求。以二维导航功能为例:处于三维立体场景中的用户由于受建筑物及自身视觉限制的影响,容易迷失方位,这时可以将三维场景中的方位在二维导航地图中相应显示,以帮助用户确定方向和位置。
  实现过程为:制作校园二维平面图,并确定二维平面图与三维场景位置坐标的对应关系。通过浏览器节点类获取用户在三维场景中的位置坐标,同时使用Java设置用户在二维平面图中的对应位置坐标。实现效果如图8所示(其中三角点对应于用户在三维场景中的位置)。
  3.3 优化设计
  Vrml文件的大小不但决定了它在网络上的传输速度,而且还影响着文件装入内存后的浏览速度。因此为保证能顺畅地漫游虚拟校园,我们必须对Vrml文件进行优化处理。
  3.3.1 3Dsmax建模环节的优化
  建模环节的优化目标是尽量控制场景模型的复杂程度。为实现这个目的,我们所采取的设计方法是控制建筑物建模的网格面片数,外形尽量使用纹理贴图(处理成jpg格式或gif格式)来代替建模造型,这样既减小了文件的容量和设计工作量,同时也可以达到逼真的视觉效果。
  图8 二维电子导航图
  3.3.2 Vrml建模及实现环节的优化
  3.3.2.1 使用Vrml中的LOD节点
  LOD (level of detail)节点可对模型进行优化处理,它通过为每个物体建立多个相似模型,根据观察者和模型之间的距离远近使用从粗糙到细致的物体模型,从而加速模型绘制速度。
  3.3.2.2 尽可能使用重用机制
  对于相同造型的物体, 第一次使用DEF命名,以后就可以使用USE 来引用;而对相近造型的物体可以使用原型节点PROTO来复制使用。这样可大大简化代码。
  3.3.2.3 使用Vrml中的VisibilitySensor节点
  该节点可以控制观察者的视力范围, 在视力范围之外的场景可以先不进行调用, 减少传输的数据量, 从而达到实时的目的。
  3.3.2.4 使用Gzip对Vrml文件进行压缩优化
  3.3.2.5 Vrmlpad自带功能
  Vrmlpad自带的压缩和“优化代码”功能可以对生成的文件进行自动压缩和优化,大大减小了文件的冗余。
  
  4 结论
  
  我们基于VRML及相关软件构建了真实逼真的宁波大学科技学院虚拟校园,为师生提供了方便、快捷的交流环境。同时也为虚拟城市、虚拟小区等三维建筑楼群的设计和实现提供了有益的思路。
  
  参考文献:
  [1]Yusdi S, Edmond C. Building a netwo rked 3D virtual environment using VRML and Java [J]. IEEE, 2000,(2).
  [2]万剑华, 郑红霞, 盛辉,等. 基于VRML 的虚拟校园中三维景观建模[J]. 计算机应用与软件, 2003,(6).
  [3]赵一鸣, 吴署旻, 潘志庚,等. 网上3D虚拟商城的设计与实现[J]. 系统仿真学报, 2003,(7).
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:本文讨论了上海党建信息系统的体系结构,在该系统中,数据交换平台是其核心部分,如何保证数据的传输安全,保证数据完整、不可篡改以及不可否认等至关重要,文中提出了基于PKI技术的系统安全解决方案和并已基本实现。  关键词:PKI;CA;非对称加密;对称加密  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)15-30633-03  Data Security Polic
期刊
摘要:本文深入浅出地阐述了C语言连接和处理Oracle数据库系统的Pro*C程序,结合作者实践经验,举例说明如何编写、编译和运行Pro*C程序。  关键词:Oracle数据库;Pro*C程序;嵌入式SQL  中图分类号:TP311.13 文献标识码:A文章编号:1009-3044(2007)15-30622-02  Briefly Bewrite the Pro*C Program in the
期刊
摘要:随着互联网的发展,Web数据库的应用越来越广泛,用户对访问Web数据库页面的速度的要求也越来越高。访问Web页面的速度取决于很多因素,主要取决于网络的速度、Web页面所在服务器的性能、Web页面本身的设计以及web数据库设计等多方面原因。本文主要从WEB页面设计这一方面介绍基于ASP的动态网站优化策略。  关键词: ASP;WEB数据库;动态网站;静态网站;查询优化  中图分类号:TP393
期刊
摘要:用CMTS+CM技术实现宽带接入是有线电视的主流方向。本文对其传输的原理、技术指标、改造注意事项及综合性能进行了分析。  关键词:CMTS+CM;有线电视;双向传输;原理  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)15-30697-02  The Principle of Cable Network Two-way Transmission Based
期刊
摘要:当今世界,信息已经成为各个部门的重要财富和资源。在信息系统的实现过程中,需要经常编写数据库连接代码。通过对.NET技术的研究,实现基于ADO.NET技术的SQL SERVER动态连接组件的设计和实现。在信息管理系统软件开发中,达到实现代码的复用,提高软件开发的效率和稳定性,减小软件后期维护的难度的目的。  关键词:信息管理系统;数据库连接;动态组件;ADO. NET  中图分类号:TP311
期刊
摘要:本文提出了一种使用Ajax+WebService开发Web应用的模式,并探讨了该模式将吸引越来越多开发者关注的原因。本文观点对于Web应用开发人员具有参考价值。  关键词:Ajax;WebService;模式  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)15-30712-01  Building WebApps in Use of Ajax & Web Se
期刊
摘要:针对IP网络普遍运行主要路由协议IGP,从管理平面和控制平面探讨了监测方法, 分析网络拓扑改变对互连网性能的影响,从而提高网络响应拥塞和拓扑改变的能力,为实施网络SLA提供有效的保障手段。  关键词:路由;监测;管理平面;控制平面  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)15-30704-02  Research on the Method of IG
期刊
摘要:通常在一个网站中会有几十个甚至几百个风格相似的页面,如果每次都重新设定网页结构以及相同栏目下的导航条、各类图标就显得非常麻烦,不过我们可以利用网页模板功能来简化操作。其实,模板的功能就是把网页布局和网页内容分离,在布局设计好之后将其存储为模板,这样相同布局的页面可以通过模板创建,因此能够极大提高工作效率。在网页的后期维护中,网页模板也发挥着同样巨大的作用,让网页更新变得不再困难。  关键词:
期刊
摘要:首先分析了现有的图书联机编目系统的局限性,进而根据现有的网络技术,提出一种基于 Web Service 的图书联机编目改进方案,并给出了具体的功能模块。  关键词:联机编目;Web Service;Z39.50  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30674-02  A Study on Union Catalogue Based on Web
期刊
摘要:MapObjects是一种功能强大的GIS开发组件,但它并未提供一个专用的地质、矿产地图形符号库。利用Visual Basic 6.0 和MapObjects以及数据库软件Access设计了基于TrueType字体可扩展的矿产地符号库,通过MapObjects的渲染功能,实现矿产地符号与TrueType代码索引之间关联,通过符号的组合,颜色的改变,可进行矿产地符号的快速、无限的扩充。  关键
期刊