基于虚幻4引擎的虚拟校园漫游毕业论文设计

1048496 2401605 3791
    


来源:
Licence:
联系:
分类:
平台:
环境:
大小:
更新:
标签:
联系方式 :
免费下载 ×

下载APP,支持永久资源免费下载

限免产品服务请联系qq:1585269081

下载APP
免费下载 ×
下载 ×

下载APP,资源永久免费


论文定制和修改服务请联系qq:1585269081 如果出现不能下载的情况,请联系站长,联系方式在下方。

免费下载 ×

载论文助手APP,资源永久免费

论文定制和修改服务请联系qq:1585269081 免费获取

如果你已经登录仍然出现不能下载的情况,请【点击刷新】本页面或者联系站长


 

 

 

摘要虚拟校园是虚拟现实技术在数字化校园中的具体应用。虚拟校园可以再现真实的校园场景,可以使那些没有机会实地参观的人获得身临其境的感受。还可以在此基础上建立三维虚拟大学,提供相应的网上教育等,具有较高的应用价值。

本文较为全面地介绍了虚拟现实技术和X3D技术,对虚拟校园漫游系统所涉及的技术问题进行了比较详细的研究。本文以深圳大学为对象,以X3D技术为主,综合运用多种技术,设计了校园内的多个场景,构建了办公楼、图书馆、科技楼等立体模型,经过整体拼合,最终实现了一个虚拟校园漫游系统。

关键词】虚拟现实;虚拟校园;漫游系统;场景设计;X3D

 

 

 

 

 

 

 

 

 

 

 

 

  1.  绪论
    1.  研究背景及意义

随着科学技术的发展和人类的进步,人们对世界的探索越来越深入,人们对事物的认识与了解已经不再局限于表面,更多地的是对事物多方面的接触与深入了解。然而,很多领域的发展受到了很多条件的约束和限制,很难真正意义上实现人类的主观愿望,比如对没有发生的事物的预测,未知结果的提前模拟等,也有对现有事物的可视化描述。这些社会的需求摆在我们眼前,迫切需要一个能解决上述问题的有效工具,虚拟现实技术正是在这样的背景下诞生的[1]

虚拟现实技术一经问世,人们就对它产生了浓厚的兴趣。近几年,虚拟现实技术不但已开始在军事、医学、教育、设计、艺术、娱乐等诸多领域得到了越来越广泛的应用,而且还给社会带来了巨大的经济效益。因此,有关人士认为:20世纪80年代是个人计算机的时代,90年代是网络、多媒体的时代,而21世纪初则将是虚拟现实技术的时代。

虚拟校园是虚拟现实技术在教育领域中的一个重要应用。它是将现实中学校的教学环境和校园的三维景观利用先进的技术在计算机中虚拟的再现出来。虚拟校园不仅能够构建一个全三维的逼真的校园环境,还能够挂到校园网上,让远程用户下载或者直接参看。有了虚拟校园,学校的对外宣传就不再仅仅局限于文字、图片等传统的宣传方式,能够更加直观的将学校的情况展现在用户的眼前[2]

虚拟校园技术对大学的对外宣传、招生就业、校容校貌的展示等具有非常重要的作用,是校园信息化平台建设的重要组成部分。虚拟校园漫游系统可以方便浏览者直观的了解校园;方便师生尽快的熟悉校园生活;有利于树立学校形象、提高学校知名度,吸引更多生源;是校园文化,校容校貌的展示平台、是校园信息化建设的重要组成部分。

  1.  虚拟现实研究现状

1.2.1  国外虚拟现实技术的研究现状

美国是虚拟现实技术研究的发源地,其研究水平基本就代表国际虚拟现实发展的水平。近年来,虚拟现实在美国航空航天和军事领域的若干成功应用获得了巨大经济效益和社会效益,促使美国进一步加大对虚拟现实技术研究的支持力度。

在军事领域,虚拟现实在武器系统的性能评价和设计、操纵训练和大规模军事演习及战役指挥方面发挥了重要作用,并产生了巨大的经济效益。美国已初步建成了一些洲际范围的分布式虚拟环境,并将所有人操纵和半自主兵力引入虚拟的战役空间,在世界上处于领先地位。

在航天领域,美国宇航局(NASA)已经建立了航空、卫星维护VR训练系统,空间站VR训练系统,并且建立了可供全国使用的VR教育系统。北卡罗来纳大学(UNC)是进行VR研究最早的大学,他们主要研究分子建模、航空驾驶、外科手术仿真和建筑仿真等。

在欧洲,英国在VR开发的某些方面,特别是分布并行处理、辅助设备(包括触觉反馈)设计和应用研究方面是领先的。英国Bristol公司发现,VR应用的焦点应集中在整体综合技术上,在软件和硬件的某些领域处于领先地位。英国ARRL公司关于远地呈现的研究实验,主要包括VR重构问题,其产品还包括建筑和科学可视化计算。

日本的虚拟现实技术的发展在世界相关领域的研究中同样具有举足轻重的地位,它在建立大规模VR知识库和虚拟现实的游戏方面取得了很大的成就[3]

1.2.2  国内虚拟现实技术的研究现状

我国虚拟现实技术研究起步较晚,与发达国家还有一定的差距。但是近十年来,虚拟现实技术已经得到了相当的重视,国家科委、国防科工委都已将虚拟现实技术的研究列为重点攻关项目。国内许多研究机构和高校也都在进行虚拟现实的研究和应用,并取得了一些不错的研究成果[3]

如:北京航空航天大学计算机系虚拟现实与可视化新技术研究室集成的分布式虚拟环境;清华大学国家光盘工程研究中心所做的“布达拉宫”,实现了大全景虚拟现实;浙江大学CAD&CG国家重点实验室开发了一套桌面型虚拟建筑环境实时漫游系统;另外,哈尔滨工业大学、西安交通大学、国防科技大学、中科院软件所、上海交通大学等单位也进行了交通领域的虚拟现实研究工作,并取得了一批研究成果[4]

1.2.3  虚拟现实技术在虚拟校园方面的研究现状

目前,虚拟校园的研究与实现方法主要分为两类:

1.基于图形软件的开发

基于图形软件的开发是指利用三维图形程序接口软件结合面向对象的可视化编程工具来开发[5],三维图形程序接口软件主要有 OpenGL,Direct3D 和 Java3D。可视化编程工具如 Visual C++,Visual Basic,Dephi,Java 等。这种方法的特点在于开发周期长、工作量大、投资大且数据兼容性差。

2.基于 VRML 的方法

数字化信息社会最具代表性的三种新技术是多媒体、Internet 和虚拟现实,而这三种新技术的交叉点是虚拟现实建模语言[6](virtual reality modeling language)。它是一种可以发布到 3D 网页的跨平台、简单的文本语言;也是一种能提供更自然地体验方式,包括沉浸感、交互性、动态效果、延续性以及用户参与探索的语言。

在原 VRML 组织基础上成立的 Web3D 联盟,在 2006 年 6 月制定了第三代 VRML标准 X3D,X3D 结合了 Java3D 和 XML 技术,已经成为三维世界的主要标准[7]

基于 X3D 技术构建的方法与第一种方法比较,虽然在真实感、实时性、交互功能、渲染速度等方面有些欠缺,但是它具有以下几方面的突出优点[8]:

(1)简单易学、开发周期短、投资少收获多。

(2)X3D 文件短小精悍,构造的是动态的虚拟场景,它尽可能的提供几何造型特征,却包含了大量不属于造型语言范围的特性。且具有良好的跨平台性,能够轻易地实现 Internet 上的远程访问。

(3)通过与 JavaScript 等脚本语言和 Java 语言容易实现 GIS 查询分析功能。结合建立深圳大学虚拟校园的实际情况,考虑目前的技术条件、时间以及实验条件等综合因素,本系统使用了基于X3D的方法实现虚拟校园的构建。

  1.  本文研究内容

本文主要研究建设虚拟校园的基本原理和关键技术,包括虚拟校园的设计、三维建模,场景构建等功能。最终实现一个基于X3D的虚拟校园漫游系统。

本文的研究内容主要包括以下几个方面:

1.X3D虚拟校园开发与设计

X3D虚拟校园开发与设计,应遵循软件工程的思想进行开发与设计。从立项、可行性分析,到需求分析,到总体设计,详细设计,一直到编码测试以及运行维护等主要环节。

2.X3D几何节点设计

利用X3D几何节点设计虚拟校园,提高虚拟校园信息资源场景浏览速度,使浏览者在虚拟现实世界里体验虚拟校园所带来的乐趣以及身临其境的感觉。

利用X3D虚拟增强现实技术开发的“基于X3D的虚拟校园漫游系统”,利用基本几何节点开发虚拟校园中的造型和场景,可以提高开发效率。

3.X3D虚拟现实建筑设计

X3D虚拟现实建筑规划设计是由土地规划、公路街道设计、各种建筑设计以及校园绿化设计组成。在总体框架设计思想的基础上,对各个部分进行详细设计,根据需求分析做进一步调整、改进和完善,最终达到要求,完成整个建筑规划设计要求。土地规划、公路街道设计、各种、建筑设计和绿化设计,根据用户需求画出草图,再根据草图绘制出计算机软件层次结构图,再根据软件结构图画出流程图。

4. X3D虚拟校园整体设计

X3D虚拟校园整体设计采用深圳大学的真实校园为背景,通过虚拟现实技术完整的体现真实校园的校容校貌。按照以下两点进行设计:

⑴ 按照学校的实际情况进行虚拟建模,勾勒出学校的真实场景和自然风貌。建立起包括:学校大门、办公楼、教学楼、图书馆、体育馆、游泳馆、田径运动场、学生宿舍、花草树木等对象。

⑵ 为了增强真实的校园气氛,可以加入汽车、行人、学生等人流。

最后使用虚拟现实技术进行编码和调试,作出合格的项目产品。

  1.  本文章节安排

本论文共分为五章,各章节的主要内容如下:

第一章为绪论。简要的介绍了论文的的研究背景、研究目的和研究意义,简要的介绍了本文研究的内容,最后阐述了论文章节的安排。

第二章为虚拟现实技术基础。介绍了虚拟现实的基本概念、发展和现状、虚拟现实的关键技术。对于完成本系统所需要的X3D和相关的知识做了详尽的介绍。

第三章为总体设计。对虚拟校园漫游系统的开发和总体设计进行了描述。讨论了虚拟校园漫游系统的需求分析。对系统的总体设计目标,系统的总体设计流程等进行了阐述。

第四章为虚拟校园场景设计与实现。这一部分是虚拟校园漫游系统的基础支撑部分,整章针对校园场景中不同类型的对象场景提出了多种建设思路,从效率和效果两方面考虑,为每个对象选择最优的构建方法。最终实现了可以为用户提供漫游平台的虚拟校园场景,对系统进行了测试与分析,并提出了优化方法。

第五章为工作总结。对本文的研究工作进行了总结,并提出了进一步的研究和改进方案。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  1.  虚拟现实技术基础
    1.  虚拟现实的基本概念

虚拟现实技术,又称“灵境技术”、“虚拟环境”、“赛伯空间”等,原来是美国军方开发研究出来的一种计算机技术,其主要目的是用于军事上的仿真,在美国军方内部使用。一直到20世纪80年代末期,虚拟现实技术才开始作为一个较完整的体系受到人们极大地关注。

虚拟现实技术是20世纪以来科学技术进步的结晶,集中体现了计算机技术、计算机图形学、多媒体技术、传感技术、显示技术、人体工程学、人机交互理论、人工智能等多个领域的最新成果。它以计算机技术为主,利用计算机和一些特殊的输入/输出设备来营造出一个多感官的三维虚拟世界。在这个虚拟世界中,人与虚拟世界可以进行自然地交互,使人与虚拟世界融为一体[9]

  1.  虚拟现实的定义

关于虚拟现实技术的定义,目前尚无统一的标准,有多种不同的定义,主要分为狭义和广义两种。

所谓狭义的定义,认为虚拟现实技术就是一种先进的人机交互方式。在这种情况下,虚拟现实技术被称为“基于自然的人机接口”,在虚拟现实环境中,用户看到的是彩色的、立体的、随视点不同而变化的景象,听到的是虚拟环境中的声响,身体部位可以感受到虚拟环境反馈回来的作用力,由此使用户产生一种身临其境的感觉。

所谓广义的定义,认为虚拟现实技术是对虚拟想象(三维可视化)或真实的、多感官的三维虚拟世界的模拟。它不仅仅是一种人机交互的接口,更主要的是对虚拟世界内部的模拟。人机交互接口采用虚拟现实的方式,对某个特定环境真实再现后,用户通过自然的方式接受和影响模拟环境的各种感官刺激,与虚拟世界中的人及物体进行交流,使用户产生身临其境的感觉[9]

  1.  虚拟现实技术的基本特征

从本质上来说,虚拟现实系统就是一种先进的计算机用户接口,它通过给用户同时提供诸如视、听、触等各种直观而又自然的实时感知交互手段、最大限度地方便用户的操作,从而减轻用户的负担、提高整个系统的工作效率。美国科学家BurdeaG.,Coiffet曾在Electro93国际会议上发表的“Virtual Reality System and Applications”一文中,提出一个“虚拟现实技术三角形”,它简明地表示了虚拟现实技术具有的三个最突出特征:交互性(Interactivity)、沉浸感(Immersion)和构想性(Imagination),也就是人们俗称的3个“I”特性,如图1所示[10]

 

 

 

 

   交互性(Interactivity)

 

 

   沉浸感(Immersion)                         构想性(Imagination)

                       图1  3个“I”特性图   

1.交互性 指参与者对虚拟环境内的物体的物体的可操作程度和从环境中得到反馈的自然程度。这种交互的产生主要借助于各种专用的三维交互设备(如头盔显示器、数据手套等),它们使人类能够利用自然技能,如同在真实的环境中一样与虚拟环境中的对象发生交互关系。

2.沉浸感 用户感到作为主角存在于模拟环境中的真实程度。它包括如下内容。

(1)多感知性。它除了一般计算机技术所具有的视觉感知之外,还有听觉感知、力觉感知、触觉感知、运动感知等。理想的虚拟现实技术应该具有一切人所具有的感知功能。由于相关技术的限制,特别是传感技术的限制,目前虚拟现实技术所具有的感知功能仅限于视觉、听觉、力觉、触觉、运动等几种,无论感知范围还是感知的精确程度都尚无法与人相比拟。

(2)自主性。它是指虚拟环境中的物体依据物理定律动作的程度。例如,当受到力的推动时,物体会向力的方向移动或翻倒,或从高处跌落到地面等。虚拟现实技术的四大特征使得我们不难将VR与相关技术区分开来,如仿真技术、计算机图形技术及多媒体技术。

3.构想性 人类在许多领域都面临着越来越多前所未有而又必须解决和突破的问题。例如,载人航天、核试验、核反应堆维护、新产品的开发与设计、医疗手术的模拟与训练等。借助于VR技术,人有可能从定性和定量综合集成的虚拟环境中得到感性和理性的认识,进而使人能深化概念,产生新意和构想[10]

  1.  虚拟现技术的组成

一个典型的虚拟现实系统主要包括5大组成部分:虚拟世界、计算机、虚拟现实软件、输入设备和输出设备,如图2所示。其中,虚拟世界是可交互的虚拟环境,涉及模型的构筑、动力学特征、物理约束、照明及碰撞检测等;计算机环境涉及处理器配置、I/O通道及实时操作系统等;虚拟现实软件负责提供实时构造和参与虚拟世界的能力,涉及建模、物理仿真等;输入和输出设备则用于观察和操纵虚拟世界,涉及跟踪系统、图像显示、声音交互、触觉反馈等[10]

 

  虚拟世界

  VR软件

 输入设备

 输出设备

                     

 

 

计算机

文本框: 计算机 

                                         

 

 图2  虚拟现实系统的一般构成

构建一个虚拟现实系统的基本手段和目标就是利用并集成高性能计算机软硬件及各类先进的传感器,去创建一个使参与者处于一个身临其境的沉浸感,具有完美交互能力和启发构思的信息环境。

1.硬件方面。需要以下设备。

 (1)跟踪系统:用以确定参与者的头手和身躯的位置。

 (2)触觉系统:提供力与压力的反馈。

 (3)音频系统:提供立体声源和判定空间位置。

 (4)图像生成和显示系统:产生视觉图像和立体显示。

 (5)高性能的计算机处理系统:具有高处理速度、大存储量、强联网特性。

2.软件方面。除一般所需要的软件支撑环境外,只要是提供一个能产生虚拟环境的工具集,或产生虚拟环境的“外壳”。它应该具有以下功能。

 (1)能够接收各种高性能传感器的信息,如头盔的跟踪信息。

 (2)能生成立体的现实图形。

 (3)能把各种数据库(如地图地貌数据库、物体形象数据库等)、各种CAD软件进行调用和互联的集成环境。

2.2  虚拟现实技术的发展及应用

2.2.1  虚拟现实技术的发展

计算机技术的发展促进了多种技术的飞速发展。虚拟现实技术跟其他技术一样,由于技术的要求和市场的需求也随即发展起来。在这个漫长的过程中,主要经历了以下三个阶段:

1. 20世纪50年代-70年代,虚拟现实技术的探索阶段

1956年,在全息电影技术的启发下,美国电影摄影师Morton Heiling开发了Sensorama。Sensorama是一个多通道体验的显示系统。用户可以感知到事先录好的体验,包括景观、声音和气味等。

1965年,计算机图形学的奠基者美国科学家Ivan Sutherland博士在国际信息处理联合会大会上提出了The Ultimate Display(终极显示)的概念,首次提出了全新的、富有挑战性的图形显示技术,即不通过计算机屏幕这个窗口来观看计算机生成的虚拟世界,而是是观察者直接沉浸在计算机生成的虚拟世界中,就像生活在客观世界中。随着观察者随意转动头部与身体,其所看到的场景就会随之发生变化,也可以用手、脚等部位以自然的方式与虚拟世界进行交互,虚拟世界会产生相应的反应,使观察者有一种身临其境的感觉[19]

1968年,Ivan Sutherland使用两个可以戴在眼睛上的阴极射线管研制出了第一个头盔式显示器。

20世纪70年代,Ivan Sutherland在原来的基础上把模拟力量和触觉的力反馈装置加入到系统中,研制出了一个功能较齐全的头盔式显示器系统。该显示器使用类似于电视机显像管的微型阴极射线管(CRT)和光学器件,为每只眼镜显示独立的图像,并提供与机械或超声波跟踪器的接口。

1976年,Myron Kruger完成了Videoplace原型,它使用摄像机和其他输入设备创建了一个由参与者动作控制的虚拟世界。

2. 20世纪80年代初期—中期,虚拟现实技术系统化,从实验室走向实用阶段

20世纪80年代,美国的VPL公司创始人Jaron Lanier正式提出了Virtual Reality一词。当时,研究此项技术的目的是提供一种比传统计算机模拟更好的方法。

1984年,美国宇航局NASA研究中心虚拟行星探测试验室开发了用于火星探测的虚拟世界视觉显示器,将火星探测器发回的数据输入计算机,为地面研究人员构造火星表面的三维虚拟世界。

3. 20世纪80年代末至今,虚拟现实技术高速发展的阶段

1996年10月31日,世界上第一个虚拟现实技术博览会在伦敦开幕。全世界人们可以通过互联网坐在家中参观这个没有场地,没有工作人员,没有真实展品的虚拟博览会。

1996年12月,世界上第一个虚拟现实环球网在英国投入运行。这样,互联网用户便可以在一个由立体虚拟现实世界组成的网络中遨游,身临其境般地欣赏各地风光、参观博览会和在大学课堂中听讲座等。

目前,迅速发展的计算机硬件技术与不断改进的计算机软件系统极大地推动了虚拟现实技术的发展,使基于大型数据集合的声音和图像的实时动画制作成为可能,人机交互系统的设计不断创新,很多新颖、实用的输入输出设备不断地出现在市场上,为虚拟现实系统的发展打下了良好的基础[3]

2.2.2  虚拟现实技术的应用

虚拟现实技术的应用非常广泛,目前在军事应用、城市仿真、教育与培训、工业应用、医学应用和艺术与娱乐中有着较高的应用[10]

1. 军事应用

VR技术的发展源于航天和军事部门。VR的最新技术成果往往被率先应用于航天和军事领域。VR技术将为武器装备确定需求、设计、制作样机。为部队的模拟训练、战备,为制定合成作战条令,为战后评估及战史分析等几乎全部军事活动提供一种一体化的作战环境。这将有助于从虚拟武器及战场顺利地过渡到真实武器与战场,VR技术对各种军事活动的影响将是极为深远的,有着极为广泛的军事应用前景。

2. 城市仿真

由于城市规划的关联性和前瞻性要求较高,城市规划一直是对全新的可视化技术需求最为迫切的领域之一。从总体规划到城市设计,在规划的各个阶段,通过现状和未来的描绘,为改善人居生活环境,以及形成各具特色的城市风格提供了强有力的支持。VR技术能够使政府规划部门、项目开发商、工程人员及公众从任意角度,实时互动地看到规划效果。这是传统手段如平面图、效果图等所不能达到的。

3. 教育与培训

针对教育事业来说,虚拟现实技术能将三维空间的意念清楚地表示出来,能使学习者直接、自然地与虚拟环境中的各种对象进行交互作用,并通过多种形式参与到事件的发展变化过程中去。这种呈现多维度信息的虚拟学习和培训环境,将为参与者以最直观、最有效的方式掌握一门新知识、新技能提供前所未有的新途径。

4. 医学应用

虚拟现实技术在医学方面的应用具有十分重要的现实意义。虚拟现实技术的使用范围包括建立合成药物的分子结构模型到各种医学模拟,进行模拟人体解剖和外科手术培训等。如通过虚拟现实仿真器,研究人员可以看到和感受到药物内的分子与其他生化物质的相互作用。在实施复杂的外科手术前,先用外科手术仿真器模拟出手术台和虚拟的病人人体,医生用带有跟踪器的手术器械演练。根据演练结果,医生可制定出最佳手术方案。

5. 艺术与娱乐

丰富的感觉能力与3D显示环境使得VR成为理想的视频游戏工具。由于在娱乐方面对VR的真实感要求不是太高,故近几年来VR在该方面发展最为迅猛。作为传输显示信息的媒体,VR在未来艺术领域方面所具有的潜在应用能力也不可低估。VR所具有的临场参与感与交互能力可以将静态的艺术转化为动态的,可以使观赏者更好地欣赏作品。

2.3  X3D虚拟现实技术

2.3.1  X3D简介

VRML 组织于 1998 年改名为 Web3D 联盟,并开始着手制订了一个新的标准:2002年 8 月,Web3D 联盟发布了 VRML97 的升级版本 X3D 的最终草案。新版本的 X3D 与VRML97 向后兼容(即能用 X3D 浏览器播放 VRML 文件)。它把 VRML 的功能封装到一个轻型的、可扩展的内核之中,并实现了 VRML 的全部功能[14]

X3D 在 VRML 的基础上提出了新的特性,2004 年 8 月,X3D 规范通过国际标准化组织(ISO)的审批,成为新一代的 Web3D 国际标准。X3D 的主要特性有以下几点:

1. 整合 XML

XML 已经成为整合并管理信息的必选。X3D 采用 XML 作为它的编码规范是有利于增强 X3D 的可移植性,有利于对数据归档和移植,有效延长了数据信息的生命周期。同时,XML 编码可以让 X3D 的开发、播放都变得更加简洁、高效[15]

2. 统一性

X3D 中订制了在不同浏览器之间协同运作场景和环境的 X3D 行为规范,保证了 X3D场景和环境在不同播放器中的操作的统一性。

3. 组件化

使用轻型的可扩展内核。VRML97 是相对庞大的标准,完全实现是比较复杂的。把VRML 的功能分割到一系列较小的内核,就可以比较容易的实现 X3D,减少实现的复杂性,因而改善了执行过程的可维护性。

4. 可移植性

允许在计算机以外的设备上使用 X3D。

2.3.2  X3D的组成

X3D整体结构包括四个部分:内核(核心特性集),VRML97特性集,应用程序接口和扩展集。如图3所示。特性集是VRML元素的一个子集,是满足特定用户需求的一组功能的集合[13]

1.内核(核心特性集):定义了VRML中最关键的特性,形成核心构件,并将其封装在一个小型的、可扩展的内核。规范规定内核实现的大小应在Flash和Realplyaer之间,可被用户快速下载,运行时占用很少的系统资源,当前的核心特性集已确定只实现VRML97的54个节点中的23个节点。

2.VRML97特性集:实现内核以外的VRML97元素"VRML97的节点被设计为可插拔的构件,通过扩展内核,完整的实现了VR人IL97规范定义的功能,从而确保了X3D与已有的VRML应用兼容。

3.应用程序接口:X3D是描述几何体和行为的一种文件格式,由于使用XML编码,文档对象模型(Document Object Model简称DOM)自动为X3D提供了一组API,外部应用程序可以通过DOM访问X3D文件。

4.扩展集:通过在内核之上进行特性集扩展,实现复杂的或是用户自定义的功能。用户可以在内核之上建立一个完整的VRML97特性集"也可以添加其它的扩展,如NURBS扩展,二进制文件格式扩展等。通过扩展还可以利用VRML97规范中未定义的新的硬件渲染技术。构件化的设计为X3D的内核提供了一种插件机制,允许扩展功能被实时的加入到运行内核。

   

                           图3 X3D的组成

2.3.3  X3D的关键技术

X3D 的两项关键技术是 XML 文档和组件思想。

1.XML 文档

可扩展标记语言(Extensible Markup Language,简称 XML)是万维网联盟(W3C)创建的一组规范。与 HTML 一样,它也源自 SGML(Standard Generalize Markup Language 通用标记语言)。但与 HTML 不同,XML 是一种元标记语言,可以依据用户的需求,自行定义标签及属性名,从而突破了 HTML 固定标记集合的约束,具有自描述性和可扩展性的特点[16]

2. 组件思想

组件思想来源于面向对象理论。基于面向对象的思想的特点,以及传统 VRML 的不易扩展性在最新的X3D规范中,使用了组件思想对X3D规范进行实现,以增强与其他编程语言的交互。依据开发人员的需求,通过调用模块动态的将有用的底层摸块装配成应用处理。使用组件模型的好处有以下几点[17]:

(1)精巧的内核。就实现而言,VRML97 是一个庞大而复杂的标准。通过将 VRML精简为一个小的核心功能集合,减少了实现的复杂度,并且增强了软件的可维护性。同时,精巧的内核可以方便用户,因为并不是每个用户都需要那些复杂的扩展,如果不加分辨的将这些复杂的应用集成上去,无疑会增加用户端的大小,所以只为用户提供简单的内核,扩展依照用户的需求自行加入。

(2)扩展能力。借助扩展集和特性集的概念,开发者可以在内核上添加新的扩展集,也可扩展新的特性。这样就可以依据不同的需求,定制不同的应用。

(3)减少了对资源的占用。一个小型但可扩展的浏览器为用户节省不必要的资源开支将会大大地方便用户的使用。

X3D的组件模型如图4所示。

                       图4  X3D的组件模型

2.3.4  X3D文件结构

X3D文件架构包含文件结构、文件头、文件体及注释等内容。X3D文件结构又包含文件头、主程序概貌,在主程序概貌中包括头文档、组件、说明及场景等。在场景中利用基本几何造型造型节点、复杂节点、组节点、纹理节点、效果节点、组件节点、人性化节点及动态感知节点等创建虚拟现实三维立体场景。在编写X3D文件、节点和域时,特别要注意大小写,X3D语言对大小写是敏感的[18]

 

 

 

X3D文件结构图如图5所示。

 

X3D文件结构

X3D头文件

X3D主程序概貌

Head(头文档):

Scene(场景):

component(组件)

metadata(元数据)

节点

节点

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图5 X3D文件结构图

X3D文件语法结构是由X3D文件头、主程序概貌(头文档和场景)组成,其中,头文档又包含组件和元数据;场景主体涵盖X3D所有节点。X3D文件头是序码部分,是X3D文件必须书写的部分。主程序概貌是X3D文件主程序框架的主题部分,是X3D文件的精髓和灵魂。概貌中的头文件作用是引入外部组件及文档说明,概貌中的场景主体描述是对X3D文件三位立体场景中的自然景观、人文环境、建筑造型、街道等创建和编码过程。

2.3.5  X3D场景

X3D 使用场景图(Scene Graph)数据结构来建立 3D 虚拟境界, 虚拟境界由对象构成,而对象及其属性用节点描述,节点是 X3D 的基本单元。每个节点由类型、域、事件、实现、名字组成,X3D 文件包含包括零个或多个根节点。节点按一定规则构成场景图(Scene graph)[19]

X3D节点层次结构:场景(Scene)根节点、父节点、子节点。以场景作为三维立体场景的根节点,以此增加节点和子节点以创建种复杂的三维立体场景。在每个X3D文件中只允许有一个场景根节点,在此基础上在增加需要的节点造型。

在一个嵌套节点中,最顶层节点就是根节点,由它派生整个场景的全部节点。父节点是根节点派生出来的,再由父节点派生子节点,循环下去直至全部场景。例如:在场景根节点下,创建一个模型节点(shape节点),此节点成为父节点。父节点又包含两个子节点,分别为Appearance节点和Geometry节点,在Geometry节点下又包含一个叶节点(Sphere节点),完成三维立体空间整体造型。X3D场景节点层次结构如图6所示:

 

 

场景(Scene)

场景(Scene)

Sphere节点

Appearance节点

 

                                                         根节点

 

                   父节点

 

                                                         Geometry节点

      子节点                                             

图6 X3D根节点层次结构图

根据X3D语法结构的要求,除根节点外,其他节点之间可以并列或层层嵌套使用。不同作用的节点有着不同语法结构,父节点包含一个或多个子节点,子节点中又包含子节点等。

2.3.6  X3D常用节点

在虚拟现实中,节点是 X3D 核心所在,可以说如果没有节点,就没有 X3D,所以 X3D 的节点起着重要作用。学好 X3D 的节点,也就学好 X3D。以下是 X3D中常用的节点[18]

1.基本2D节点

X3D 支持点的节点是 PointSet,它可以包含 Color 和 Coordinate 节点。Color 节点是用来构造颜色值的索引表用于指定对应点或对象的颜色,Coordinate 节点是用来构造坐标的列表。

绘制直线是采用 IndexedLineSet 节点,它可以包含 Color 和 Coordinate 子节点。IndexedLineSet 节点属性中,coordIndex 属性用来指定直线端点在Coordinate子节点的索引号(0表示第一个点),每条直线索引值3个数组成,前两个是点的索引号,第三个是-1。

Rectangle2D 几何节点用来指定一个平面矩形。Arc2D、ArcClose2D、Circle2D 和 Disk2D节点分别用来绘制圆弧、封闭圆弧、圆和环。

2.基本3D节点

X3D 提供了立方体(Box)、圆柱(Cylinder)、圆锥(Cone)、球体(Sphere)等基本 3D 造型节点。

Box 节点的主要属性是 size,用来确定长度(x 方向)、高度(y 方向)和宽度(z)方向的大小。

Cylinder 节点的主要属性有 height(高度)、radius(半径)以及是否包含顶面(top)、侧面(side)和底面(bottom)等。

Cone 节点的主要属性有 height(高度)、bottomRadius(底面半径)以及是否包含侧面(side)和底面(bottom)等。

Sphere 节点的主要属性是 radius,用来确定球体的半径。

3.复杂节点

利用X3D的几何2D和几何3D节点,可以创建出一些简单的几何造型。一个虚拟现实空间的内容是丰富多彩的,仅有一些简单造型不能满足X3D设计需要,因此需要创建出更加复杂多变的场景和造型以满足设计需求。

X3D复杂几何造型节点涵盖PointSet(点)节点、IndexedLineSet(线)节点、IndexedFaceSet(面)节点、ElevationGrid(海拔栅格)节点及Extrusion(挤出造型)节点等复杂节点。

ElevationGrid节点先将某一个地表区域分割成很多网格,定义网格的个数,再定义网格的长和宽,最后定义网格的高度,可创建该区域所需的海拔栅格几何造型。该节点可以创建高山、丘陵、及不规则地表的空间造型。

Extrusion节点可以创建出用户需要的所有立体空间造型,是X3D文件中最重要、最复杂、也是最有用的节点。Extrusion用以创建出造型,创建挤出造型过程类似于在工业生产中加工材料的流体通过一个金属板的模型孔,按照模型孔的设计,挤压成为一个新的造型,这个过程就是挤出。Extrusion节点主要由crossSection域和spine域 的域值决定。crossSection域控制断面形状,是一系列的二维轮廓线,可以组成圆形、方形、多边形等。Spine域定义一系列的三维路径,crossSection域定义好的断面的几何中心沿spine路径创造。常见几种断面形状如图7所示。

 

           
     

 

                     

                      x                         x                      x

 

 

           z                           z                       z

图7 常见几种断面(x-z)形状

4.视点效果节点

在X3D文件中的视点就是指在立体空间中预先定义的观察位置和空间朝向。在这个位置上通过这个朝向,浏览者可以观察到虚拟世界中的场景。Viewpoint 节点指明了一个 X3D 场景空间中的观察位置和视角方向。NavigationInfo 节点用来指定场景的观看方式和替身的物理特征。

5.空间坐标变换节点

在 X3D 场景空间中,每一个造型都有其空间坐标,通过修改空间坐标系就可以使该造

型在场景空间中移动、旋转和缩放等。X3D 提供 Transform 节点来进行造型的大小变换,位置变化。

6.组节点

利用X3D组节点设计可以创建X3D立体空间的复杂造型,可以将所有节点包含其中,看作一个整体对象造型。在组节点中节点可以是基本节点、子节点或者组节点本身。组节点的种类有很多,如Group(编组)节点、Inline(内联)节点、Billboard(广告、警示牌)节点及LOD(细节层次)节点等。

Group节点用来编组各种几何造型,并将其作为一个整体造型来看待。Group节点是将多个节点进行组合创建较复杂的立体空间造型。如果利用DEF(重定义节点名)为Group节点命名,则可以使用USE(重用节点)在相同文件中重复使用这一节点,从而增强程序设计的可重用性和灵活性。

Inline节点可以使X3D程序设计模块化。由基本X3D程序模块组成复杂和庞大的X3D立体空间静态或动态场景。Inline节点还可以从其他网站中引入X3D文件(程序),可以实现分工协作。在X3D程序设计中,编写X3D程序时,由于创建的节点造型复杂,使X3D源程序过大或过长,给程序编写和调试带来诸多的不变,因此需要将一个很大的X3D源程序拆分成几个小程序。这就是软件工程的设计思想,采用结构化、模块化、层次化的程序设计方法,提高软件设计质量。设计出层次清晰,结构结构合理的软件项目。

Billboard节点可以在世界坐标系下创建一个局部坐标系,选定一个旋转轴后,这个节点下的子节点所构成的虚拟对象的正面会永远自动地面对观众,而不管观察者如何行走或旋转。在X3D场景中,可以用来给单位、公司做广告宣传,路标指示、张贴海报等。

7.纹理绘制节点

X3D纹理绘制节点将纹理图按一定规则粘贴到X3D文件立体空间造型表面的过程称为纹理映射。纹理是一种位图,即二维图像。使用纹理映射能使立体空间造型更具有真实感,纹理图的使用能增强视觉效果,提高渲染质量。在X3D文件中,浏览器支持JPEG、GIF、PNG及MPEG等格式的纹理图像。X3D文件提供了多种纹理节点,如ImageTexture(图像纹理)节点、Image3DTexture(三维图像纹理)节点、PixelTexture(像素纹理)节点和MovieTexture(电影纹理)节点。

8.动画节点

(1)时间触发器 TimeSensor

触发器或者叫做传感器,是用来产生不同类型的事件。时间触发器 TimeSensor 是根据时间来不断产生事件,它有许多属性,通常把用于输入的属性称为域,或称为输入事件,而把输出的属性称为产生的事件,或称为输出事件。

(2)插值器

计算机动画按生成的方法可以分为逐帧动画、关键帧动画和造型动画等几大类。在关键帧动画设计中,通常需要我们指定关键帧,而中间帧往往由计算机自动生成。X3D 中的插值器就起到设定关键帧并自动生成中间帧的作用。它主要有颜色插值器节点(ColorInterpolator) 、坐标插值器节点(CoordinateInterpolator)、法向量插值器节点(NormalInterpolator)、方向插值器节点(OrientationInterpolator) 、位置插值器节点(PositionInterpolator) 和比例插值器节点(ScalarInterpolator)。除此之处,X3D 还提供比较专业的插值器,如 NURBS 曲线系列插值器等。

(3)事件

事件(Events)是在 X3D 运行时环境中产生行为的主要方法,这种方法用来改变域的输入值或接受域的输出值,分别又称为发送到输入域的事件和输出域发送的事件。

(4) 路由

路由(Route)声明允许我们在把一个节点的输出事件连接到另一个节点的输入事件上,这样可以执行复杂的行为,而不需要使用程序命令。在路由中,一个输出事件发生,相应目的的输入事件就会接受到通知,同时可以对输入事件变动做出相应的处理。这个处理可以改变节点的状态,产生额外的事件,或者改变场景图的结构。Route(路由)不是节点,它是一个语句。ROUTE 语句是建立指定节点的域之间通道的语法构件。ROUTE 语句可以出现在 X3D 文件的最上层,或者也可以出现在节点中任何可以使用域的地方。ROUTE语句应该放置在路由的源节点和目的节点定义之后,而不能放置在源节点中或目的节点中。

9.交互节点

X3D 的交互实现也是通过类似的映射机制。用户事件的产生是通过相应的传感器产生的,而 ROUTE 语句就是相当于事件的映射,它映射到另一个输入事件中。X3D 中,用户事件的传感器有:KeySensor(键盘传感器) 、StringSensor(字符串传感器)、TouchSensor(触摸传感器)、PlaneSensor(平移传感器) 、SphereSensor(绕点旋转感器)和CylinderSensor(Y 轴旋转传感器)等。

10.脚本节点

在X3D中,通过使用程序化的节点Script 来嵌入脚本程序。它支持ECMAScript/JavaScript或Java 语言。ECMAScript也是一种脚本语言,由 Netscape 和Microsoft 使用开发,它是一种面向对象语言,ECMAScript 和 DOM 一起十分接近于现在对 JavaScript 和 JScript 的实现,虽然说是用于网络环境,但它可以用于任何脚本环境中,并且其语法与 JavaScript 基本相同。

 

 

 

 

 

 

 

 

 

 

第3章 虚拟校园漫游系统总体设计

3.1  系统的需求分析与设计目标

3.1.1  需求分析

虚拟校园漫游系统包括一个逼真的视、听、触觉一体化的特定范围的虚拟环境,它是一个真实空间或假想空间的实时仿真虚拟空间,用户借助必要的装备以自然的方式在该虚拟空间中漫游,从任意角度对环境中的虚拟对象进行观察,从而产生身临其境的感觉,漫游其中。

本系统旨在开发深圳大学的校园虚拟漫游系统,主要从三维场景建模、建立漫游系统、实现交互功能等方面来考虑。首先按校园环境选取几个典型场景建立模型,然后建立漫游系统,即完成对三维场景漫游控制的设计。最后为系统增加各种交互功能,进一步提高虚拟系统的真实感觉。具体实现过程如下:

1.进行前期需求分析,确定漫游系统的规模、显示效果以及开发平台等。

2.基于实景建立场景模型,然后进行纹理贴图,并对数据进行预处理矫正,尽量实现真实感效果。

3.设定漫游方式,开发交互功能,实现对虚拟校园的交互漫游。

3.1.2  设计目标

虚拟校园漫游系统应该表现出虚拟环境中的地形、花草树木、校内建筑等对象的三维模型,在形态、光照、质感等方面都十分逼真,使参考者能在构筑的栩栩如生的虚拟校园中漫游,系统应实现如下目标[18]

1.虚拟校园漫游系统的界面应该尽可能的简单化,能使不同层次的用户都可以对系统进行操作。

2.虚拟校园漫游系统应按校园的实景建立虚拟环境,能充分体现出现实中的校园自然景观。

3.为了使虚拟校园中的物体具有更好的真实感,系统应该能够表达物体表面的纹理细节,即要进行详细的纹理影射。

4.为了使虚拟物体具有立体感,虚拟物体应具有逼真的材质、明暗效应。

5.系统应该具备良好的漫游功能,使用户可以从任意角度和方向对校园的景观进行浏览。

6.系统应具有碰撞检测机能。

7.为了使虚拟校园能够适应不断变化的要求,系统应具备删除、添加建筑物的功能。

8.系统应具有较好的可移植性和可扩展性。

 

3.2  系统设计流程

 

开始

收集数据及图片等信息

 

整理信息,做出草图

构建场景与模型

虚拟校园场景整体拼合

完成虚拟校园漫游系统的建立

结束

虚拟校园漫游系统的设计应力求真实,所以对校园的实地考察是很有必要的。通过实地考察,分析校园建筑的构造,收集校园建筑的图片信息,确定建筑比例,做出草图方便模型的构建。处理收集到的信息,做出整体规划,构建三维立体模型,整合各个场景与模型,最终形成完整的虚拟校园漫游系统。具体的实现流程图如图8所示。

 

                            

 

 

 

 

 

图8 总体设计的流程图

  3.3  系统的总体结构及规划

将前期收集的数据整理之后,对整个场景里的数据模型按照一定的逻辑规则进行组织,采用层次结构的形式进行数据模型的组织,有利于模型的构建、场景的合并以及场景优化等维护和管理。总体规划效果图如图9所示。

图9 虚拟校园总体规划效果图

层次结构就是按照物体的类别进行划分,同一类物体作为一个集合,而在每一个集合里又可以再细分,比如:整个场景可以由建筑物、道路、树木等组成,而建筑物又分为教学楼、宿舍、图书馆等,如图10所示。这样组织数据库,结构清楚、层次明确。

 

校园场景

  建筑物

地面

天空

其余

绿化

办公楼

教学楼

图书馆

科技楼

……

校门

路灯

……

道路

树木

文本框: 树木文本框: 道路文本框: 校门文本框: 办公楼文本框: 教学楼文本框: 图书馆文本框: 科技楼文本框: ……文本框: 路灯文本框: …… 

 

 

 

 

 

          

 

     

                                 图10  系统的总体结构图

3.4  系统实现的软硬件环境

开发本系统的硬件环境为:

处理器:Intel(R) Core(TM) i5 M430 @ 2.27GHz 双核

内存:2GBx2 双通道

显卡:ATI Mobility Radeon HD 5145 (512 MB)

图片拍摄设备:SONY DSC-T300,Ipad4

 

开发本系统的软件环境为:

操作系统:Microsoft Windows 7 旗舰版 Service Pack 1 (build 7601), 64-bit

开发工具:X3D-Edit,Notepad++

运行软件:BS_Contact 8.0

图像处理软件:Photoshop CS5,可牛影像

 

第四章 虚拟校园场景设计与实现

虚拟校园场景的建设是整个虚拟现实漫游系统的基础,虚拟校园场景的建设可以分成分三步[2]

第一步,想要建立一个真实的虚拟校园,就必须要有校园中各建筑物各环境物体的分布图和具体的平面图,如果没有这些图形,也必须要知道学校的整体占地面积和每一个物体的长度、宽度、高度以及在校园中所处的坐标位置等这些基本的数据。还必须要掌握学校各部分的大概高度,最底点最高点等地形信息。这些信息可通过实地考察以及结合电子地图(如百度地图)、虚拟地球软件(如谷歌地球)获得。

第二步,对校园内各单个实体对象分别单独建模,虚拟校园中的场景模型分为两类:一类是以场为基础,在空间上连续分布的景观对象,如地形、天空等;另一类是以离散实体为特征,以独立的个体而存在的地物对象,如建筑物、树木、路灯等。根据具体场景模型的类型和复杂情况采取适当的建模方法,最终得到了校园中各个实体的场景文件(*.x3d)。

第三步,各个单独的实体场景构建好了以后,再把这些场景整合成完整的虚拟校园场景,本系统中深圳大学的完整场景文件是 school.x3d。

通过上述三个步骤,即可完成虚拟校园漫游系统的建设。

4.1  信息的收集与处理

本文使用的原始数据主要有办公楼、教学楼、图书馆、宿舍楼、体育馆等建筑的平面图

和通过数码相机拍得的照片。为保证虚拟校园系统的真实显示和空间分析的正确进行,本体统采用的数据采集方案如下:

1.对于各对象实体的在虚拟校园中的位置,先确定一个原点,如学校的正门,然后通过电子地图(如百度地图)上的测距功能,测量对象实体到原点的距离。

2.对于部分建筑物的高度,从总平面图和收集到的数据中不能获取的情况,自行测量出其中一层的高度,然后根据楼层数计算出总的高度。此外可以利用虚拟地球软件(如谷歌地球)进行辅助性的测量。

3.对于纹理数据主要采用自己拍摄的方式。由于受拍摄时的天气及周围环境的影响,

拍出的照片通常不能直接使用,需要在亮度、色调上做出调校。另一方面,拍照取景时,可能会受拍摄角度限制、行人或树木掺杂等因素的影响,照片常常需要进行修复、剪裁等后期处理。处理用到的方法如下[19]-[20]

(1)去除杂景处理

在数码相机拍摄时,应尽量争取获得纯景物的图片,但在实际操作中难以避免会出现

人或车辆等的遮挡,这时就需要对照片进行杂景处理。在具体去除杂景处理时,借助的是

Photoshop 软件平台,通常采用选区拷贝方法和仿制图章工具方法等,使能获得所需的图

片。

(2)调整色调

受拍摄数码照片的时间、角度、光线等因素影响,很难保证每张照片都能保持有一致的色调。因此需要使用 Photoshop 对图片在亮度、对比度、色彩平衡等方面进行调校。通常使用到的是“亮度/对比度”与”色彩平衡”对话框命令。

(3)拉伸变形处理

在拍摄高大的建筑物时,最理想的选择站在离建筑物较远的视觉来进行拍摄,因为这样可以得到视角较好的照片。但是在实际操作中,会由于拍摄位置的限制,便只能得到由透视角度成像的照片,这样的照片就不能够直接用来制作贴图,而需要进行变形处理,将其调整为正视的角度。在 Photoshop 中使用“编辑 变形 自由变换”命令对需拉伸变形的图片进行处理。

(4)透明贴图

普通的贴图文件都是矩形的,这对处理非规则模型的贴图并不适用,因此网络上通常使用透明贴图形式来弥补这一缺陷,在制造花丛、树木、雕像等不规则模型时,如果直接造三维模型来模仿这些景物,既不神似又花功夫,利用透明贴图的这一优点,可达到逼真建模的效果。

4.2  校园中单个实体的场景设计

有了足够的数据信息及纹理图片以后,就可以按照校园中各实体的类型进行单个场景的建设了。鉴于虚拟校园系统组成比较复杂,本文选取几个有代表性的几个场景进行详细叙述。

4.2.1  地形及地面的设计

地形模型在虚拟环境中分量很大,它对漫游的真实性和系统运行的实时性有重要影响。地形对象模型是虚拟校园模型系统的基础,是布置地物对象模型的依据。地形对象三维模型的建立是开发虚拟校园必不可少的一个关键环节,对其它虚拟系统同样如此。

三维真实感地形的绘制一直是国内外图形学领域关注的热点,其可视化程度高、实用方便、可实时生成的优点已成为图形工作者的共识。三维地形模型也称为数字地面模型(DigitalTerrain Model,DTM),它是对地面特征的一种数字表达,是虚拟地理环境研究中的重要组成部分[21]

如果在可视化过程中对地形的生成只是视觉上的要求,而非真实世界的再现,则可以采用模拟地形。由于本漫游系统是以深圳大学为对象进行开发的,其校园地形数据不太复杂,故采用模拟地形法,即平面模拟地形。这种方法实现起来比较简单,且对系统资源的消耗要小得多。

对于平面地形,可以使用X3D的Box节点,输入地形长宽高数据,并用ImageTexture节点进行贴图。对于不同纹理的地形,如绿地、土地等,可叠加在整个校园地面上。对于曲折的、不方便用Box节点设计的地形,如道路,可使用Extrusion节点。对于丘陵、山脉等起伏不平的地形,可以使用ElevationGrid节点进行创建。

 

图11是深圳大学地面设计层次图。

 

地面

绿化带

丘陵

  道路

 

                           

 

 

 

 

                                图11 地面设计层次结构

图12是深圳大学地面设计的运行效果图。

图12 地面设计运行效果图

4.2.2  天空的设计

为了增加三维虚拟校园场景的真实感,需要为校园场景增加蓝天自云效果的天空。根据用户所需要的真实程度,可以采用多种方法来实现[21]

1.用一种接近天空的淡蓝色来作为背景。

在X3D的Background节点中,有两个域值控制天空的颜色,分别是skyColor和 skyAngle。skyColor域指定立体空间背景天空的颜色,该域值由一系列红、绿、蓝颜色组合而成。skyAngle域指定空间背景上需要着色的位置的天空角。X3D浏览器就是在这些空间角所指位置进行着色的。第一个天空颜色着色于天空背景的正上方,第二个天空颜色着色于第一个天空角所指定的位置,第三个天空颜色着色于第二个天空角所指定的位置,以此类推。这样使天空角之间的颜色慢慢过渡,这就形成了颜色梯度,使得天空看起来更为真实。

2.天空盒方法

所谓天空盒就是用一矩形方盒作为天空的远景贴图的载体。首先生成一个足够大的立方体,通过在立方体盒子的5个不同面上贴上表现天气效果的不同的天空纹理来达到逼真的模拟效果。用于天空背景的图片有特殊要求,这些图片必须满足以下几个条件:

(1)图形尺寸必须为2的N次方。

(2)顶图的四边必须与前后左右图的上边相连。

(3)前后左右的四幅图必须首尾相连。

3.球形方法

球形方法绘制的天空较天空盒优点更多,雾化效果可以绘制得更加均匀。球形模型实际就是一个半球面,一个圆顶形天空可以认为是一个球面的一半,在一个球面上进行纹理映射是比较复杂的,采用不同的映射方式会出现不同的问题。例如,如果采用平面映射的方式,将在连接处出现纹理拉伸现象。如果采用球面映射,最大的问题是在球面的极点产生纹理的聚集现象。

在虚拟校园漫游系统中,从真实感和渲染效率两个方面出发,本系统选用了方法一生成天空。

4.2.3  建筑物的设计

1. 建筑物几何模型的建立

建筑物是虚拟现实中的主要景观,在虚拟校园系统中,三维建筑物的表示和建模是最为重要的内容。由于建筑物数目众多,为了较好地实现对楼群建的建模任务,可以根据实际情况确定其设计原则[21]

(1)由于本系统虚拟的是一个实际存在的校园,为了取得较真实的效果,现实存在的建筑在虚拟环境中尽量都进行建模。

(2)根据校内建筑的外观与结构对建筑进行分类,确定构造模型,对外观和结构相同的建筑采用同一个构造模型。

(3)对于较复杂的模型采用新拆分,使之简单化,然后再进行建模。目前对建筑物的建模一般采用整体法,即画一个立方体或长方体,然后再对表面进行纹理映射,构造建筑物模型。

2.建筑物的纹理映射

建筑物并不是一个空白的面,一般的建筑物上都有窗户,贴有各式各样的瓷砖。目前对于建筑物窗户的建模一般采用线段来构造,及描绘出窗口的大概框架,然后进行渲染。由于校内的建筑物特别多,如果要一一进行建模,会花费大量的时间,而且影响了系统的运行速度。所以,在本系统中对房屋表面的窗户和花纹都采用纹理映射的方法进行建模。其实现方法是:将校内每个建筑各个面的纹理数据进行采集、加工、转换成纹理映射要求的图像格式,之后在画面绘制的过程中,分别对每个面进行纹理映射。

下面将介绍深圳大学一些标志性建筑的构建方法。

1. 图书馆北馆

图书馆北馆场景设计由图书馆设计和布局图书馆周围环境设计组成,创建逼真的虚拟现实三维立体场景,包括建筑物的设计、绿化带场景设计及人行道设计等。采用模块化,组件化设计思想,层次清晰、结构合理的X3D图书馆场景设计。图书馆建筑场景设计层次结构如图13所示。

 

图书馆北馆建筑场景设计

周边环境

图书馆

楼梯底座

建筑主体

楼体附件

绿化草坪

树木设计

道路设计

 

 

 

 

·

 

 

 

图13 图书馆建筑设计层次结构

图书馆北馆场景建设主要用到了以下的X3D节点:

(1)Shape造型节点。该节点是一切几何造型的父节点。该节点包含两个子节点,分别为Appearance(外观)节点与Geometry(几何造型)节点。

(2)Appearance节点。该节点用来定义物体的外观属性,通常为Shape节点的子节点。Appearance节点指定几何物体造型的外观视觉效果,包含了Material(外观材料)节点、Texture(纹理印象)节点和TextureTransform(纹理坐标变换)节点。通过Material域,可以设定材料的颜色,该颜色为单一的颜色。通过texture域,可以对几何造型进行贴图,使造型更为逼真。而TextureTransform域,则可以定义贴图的方式,比例等,已达到更好的贴图效果。

(3)Box节点。该节点的作用是生成立方体。通过调整该节点的size(尺寸)域的域值,可以改变立方体的长、宽、高。

(4)Cylinder节点。该节点的作用是生成圆柱体。Cylinder 节点的主要属性有 height(高度)、radius(半径)以及是否包含顶面(top)、侧面(side)和底面(bottom)等。

(5)IndexedFaceSet节点。该节点是一个三维立体几何造型节点,表示一个由一组顶点构建成的一系列平面多边形形成的3D立体造型。

(6)Billboard节点。该节点可以在世界坐标系之下创建一个局部坐标系,选定一个旋转轴后,这个节点下的子节点所构成的虚拟对象的正面会永远自动地面对观众。通过该节点axisOfRotation域,可以设定绕哪一个坐标轴旋转。

(7)Group节点。该节点可以用来编组各种几何造型,并将其作为一个整体造型来看待。把Group节点中所包含全部节点视为一个整体,当作一个完整的空间造型来对待。如果利用DEF(重定义节点)为Group节点命名,则可使用USE(重用节点)在相同的文件中重复使用这一节点,从而增强程序设计的可重用性和灵活性。

(8)Transform节点。该节点能对几何造型进行平移、旋转、缩放。通过translation(方位)域值、rotation(旋转)域值、scale(规模)域值,可以达到改变造型位置、大小的目的。

图书馆北馆的场景建设方法如下:

(1)图书馆

图书馆的造型大体上可以看做是大小不同的立方体,根据空间方位的不同而拼凑而成的。可以从图书馆的第一层起,逐层往上添加造型。方法如下:

1)利用Box节点、Cylinder节点,根据比例构造出立方体圆柱体等造型,作为图书馆的部件。

2)利用Group节点,对几何造型进行编组、组合,生成更为复杂的几何造型。

3)充分利用DEF节点和USE节点,增强程序的可重用性和灵活性。

4)利用Transform节点对几何造型进行大小以及空间上的变换,将几何造型有层次的拼合起来。

5)利用Appearance节点对几何造型的外观进行编辑,使之形象更为逼真。

(2)图书馆周边环境

图书馆周边环境大体上有绿化带、树木以及道路所构成。建设方法如下:

1)道路。利用Box节点,生成大小不同的立方体,利用Transform叠加起来,形成不同层次的路面,用TextureTransform节点进行纹理的映射。

2)绿化。利用Box节点,生成立方体覆盖于地面之上,利用TextureTransform节点映射绿地图片。

3)树木。首先需要一张png格式的树木图片,图片只保留树木的形象,此操作可通过photshop抠图实现。利用IndexedFaceSet节点,将图片竖直于世界坐标系中。利用Billboard节点节点将该造型包含进去。这样生成的树木就会始终正面面向观众。此方法避免了构造复杂的树木造型,且真实感较强。

将上述构建的对象有机地结合起来,就构建出图书馆了,如图14所示。

图14 图书北馆运行效果图

 

其他建筑物的构建方法与图书北馆的构建方法大致相同,此处不再一一累述。现在展示其余几个标志性建筑物的运行效果图。

2.图书馆南馆

运行效果图如图15所示。

图15 图书馆南馆运行效果图

3.科技楼

运行效果如图16所示。

图16 科技楼运行效果图

4.原平体育馆

运行效果如图17所示。

图17 原平体育馆运行效果图

4.2.4  树木的设计

在虚拟场景中,树木的添加极大地改善了场景的逼真程度和真实感,场景中的绿色树木越多,视觉感观效果越好。虚拟校园系统中一些景观植物的设计,制作树木场景最为复杂。主要是因为树木本身结构复杂、制作时间长、系统开销增大。所以,树木作为自然场景的重要构成因素,一直是虚拟环境中非常重要的研究对象。如果将树分解成大量的小段,每一段用基本几何体来近似,这样得到的树木场景模型的多边形数将达到一个极高的数量级,这显然是不可取的,而且对于实时响应要求也是不合理的。所以,想通过详细建模的方法来表示大量的树木是很难的。利用纹理映射来实现树木的简单表示是可取的捷径。有几种表示方法:粒子分形法和利用纹理来表示的方法、十字交叉法和公告牌(Billboard)法等。下面主要介绍本系统用到的公告牌(Billboard)法。

公告牌技术(Billboard)是采用多边形面模拟,当视点改变时,此多边形会绕指定的轴旋转从而保证始终面向着视点。只要时刻保持二维纹理树林图像的法线矢量指向观察者,就可以形成非常真实的三维景观,从不同的角度观察均可获得树木的较为完整的图像。在X3D中,Billboard节点提供了这一功能。通过设定Billboard中axisOfRotation域,可以规定树木的旋转轴。

以下是利用Billboard技术构建的树木,不论如何改变视角,树木始终正面朝向浏览者。如图18、19所示。

图18 树木效果图

 

图19 树木效果图

4.3  虚拟校园的整体拼合

要把不同的模型整合在一起,必须首先深刻了解坐标系。在X3D中,能创建任意数目的坐标系。每个新坐标系都是相对于另一个坐标系的原点而定位的,称为坐标平移。当一个新的坐标系相对于另一个时,我们说新坐标系是嵌入到父坐标系中的子坐标系。同样地,父坐标系也能嵌入到另一个坐标系中等等。坐标系的这种父子关系产生一个坐标系的家族树。坐标系树中最上面的父坐标系是X3D文件中的根坐标系。每个X3D文件都有一个根坐标系。所有其他坐标系,根据它们在坐标系家族树中的位置,直接或间接地是根坐标系地后代。所以根坐标系常常被称为世界坐标系(World Coordinate System)。

造型总是创建于一个坐标系中。如果使用Transform节点创建另一个坐标系,在该坐标系中创建的任何造型都是被放置在新坐标系的原点上。如果Transform节点的坐标原点是由父坐标系的原点平移而得,在Transform节点的坐标系中的任何造型将坐标系一起平移,相对于父坐标系来说是平移过的。

由于整个校园场景中的各个物体是通过相对位置关系组织起来的,因此需要确定某一个物体作为基准和参照来确定其它物体的位置。本系统以学校正门作为参考标准。拼合方法如下:

1.根据总平面图,利用一个 Box 节点来作为学院的整体地表,更改其参数,使得它的大小和学校的总面积相同。

2.以学校正门为参考点,通过电子地图(如百度地图)测量其他建筑距参照点的距离,根据比例,用Transform节点改变实体位置。

3.使用Inline内联节点,将创建好的各实体整合到校园中确定的位置上,最终完成虚拟校园的整体建设。

拼合时,单独建立一个X3D文件,用于拼合各实体。在本系统中,以school.x3d作为主程序的入口。运行school.x3d,系统的运行界面如图20所示。

图20 系统运行截图

4.4  系统的测试与优化

软件测试的目标,就是为了更快、更早地将软件产品或软件系统中所存在的各种问题找出来,并促进开发各类人员尽快地解决问题,最终及时地向客户提供一个高质量的软件产品,使软件系统更好地满足用户的需求,同时满足软件组织自身的要求。

4.4.1  系统测试环境

为了让本系统能够在较普通的机器上顺利的运行,系统测试所选用的计算机为中等配置,具体的配置如下:

处理器:Intel(R) Core(TM) i5 M430 @ 2.27GHz 双核

内存:4GB

硬盘空间:500GB

显卡:512MB独立显存

网卡:集成10/100/1000以太网卡

操作系统:Windows 7 SP1

网络协议:TCP/IP

浏览器:Internet Explorer 8.0 以上

插件:BS contact8.0

4.4.2  测试结果与优化

测试的主要内容为本系统的浏览效果。本系统运行的结果表明本系统基本能正常且良好的运行,用户能以不同的视点从不同的角度进行浏览。

但是测试过程中主要出现了以下两个方面的问题:一是机器配置不高,造成了部分场景加载显示时有点延迟;二是当摄像机出现在场景对象较多的地方时,运行不够流畅。

针对测试过程中出现的问题,可对系统进行优化。优化的时候遵循了“速度优先,兼顾细节”的原则,在保证速度的前提下,再尽可能地满足细节需要。优化的方法和步骤如下:

1.在不影响模型外观的情况下,尽量减少模型的面数。对于建筑物,由于其外观多为方形,因此,尽量采用简单的立方体模型,在一些细节的地方则可以利用新的立方体重叠在上面,这样就不需要对原有的立方体进行分割,从而减少面数[22]。对于建筑物的门和窗户等细节,都不在模型中刻画,直接用一个面,而是通过贴图的方法来实现门窗的效果显示。

2.图片的优化。纹理图片大小的合理确定,尽量避免使用高像素的图片。虚拟校园中有些表面的纹理细节差别较小,如不同路段的路面纹理,栅栏纹理等,采用子纹理进行处理,既避免了明显的雷同,又可以节省内存[23]

3.尽量使用 DEF 和 USE。对于相同造型的节点,第一次使用时用 DEF 属性命名,以后就可以使用 USE 属性引用这个命名的节点。USE 语句不会建立这个节点的副本,而是把同一个节点再次插入场景图,这样既可以简化代码,又可以使得相同的模型只需要在内存中保留一份占用空间,有效的减小系统的开销。

4.摄像机的合理设置。因为虚拟化身在虚拟场景中观察到的物体实际上是由摄像机对象来确定其所见范围的,所以合理的设置摄像机的可视距离,减少一次进入观察范围的模型数目,使得每一帧显示处理的模型在合理的范围内,这样可以有效的减小系统的开销。在X3D中,可通过NavigationInfo(视点导航)节点中的visibilityLimit阈值实现。

5.使用LOD(细节层次)技术。空间的细节层次原理是通过空间距离的远近来展现空间造型的各个细节。X3D中的LOD节点实现了这一功能,它可以对不同景物做出不同细致程度的刻画,近景精细刻画,远景初略刻画。

以下是使用后三种方法优化前后系统的加载速度及流畅程度的结果对比,如表1所示。

 

 

所用到的方法

测试结果

DEF、USE

设置

visibilityLimit

使用LOD

初次加载速度(秒)

流畅程度

12.2

不流畅

10.3

较不流畅

8.7

一般

8.5

一般

6.2

较为流畅

 

表1 优化前后结果对比

VisibilityLimit阈值对模型表达效果有较为重大的影响,值太小,稍微远一点的景物显示不出来,会有景物丢失的感觉;值太大,又达不到优化的效果。因此应该在效果和速度间取得平衡。

当VisibilityLimit设定成40时,较远的景物科技楼(图片左上角)无法显示,如图21所示。

图21 当VisibilityLimit设定成40时效果图

当VisibilityLimit设定成45时,较远的景物科技楼(图片左上角)无法全部显示,如图22所示。

 

图22 当VisibilityLimit设定成45时效果图

当VisibilityLimit设定成50时,较远的景物科技楼(图片左上角)可以全部显示,经试验,此值为本系统最佳距离,如图23所示。

图23 当VisibilityLimit设定成50时效果图

经过优化以后,再次测试时,画面显示的效果有了明显的提高,虽然加载仍有延迟,但是相对未优化时有很大的改观。

第五章 工作总结

虚拟校园漫游系统是计算机技术、虚拟现实技术、图形图像显示技术等诸多高新技术的综合运用,在高校的虚拟校园建设中发挥着重要作用。本文在虚拟现实技术的基础上讨论了虚拟校园的设计与实现。以下是对本人所做工作的总结和展望。

5.1  总结

通过不断研究摸索,充分发挥多种创作工具的优点,以深圳大学为对象的虚拟校园漫游系统基本完成。本课题基于X3D标准,结合实例给出了校园场景的建设与优化方法,实现了用户在虚拟场景中的漫游。本系统经过运行测试,运行结果基本达到了设计目标。

在对本课题的研究和开发过程中,完成了以下几个方面的工作:

1. 研究了虚拟现实的相关知识与技术。

2. 基于X3D技术,综合运用多种方法,完成了虚拟校园场景的设计与建设。

3. 实现了虚拟校园的漫游功能,用户可以通过鼠标和键盘在虚拟校园场景中漫游。

5.2  进一步的工作

虽然本系统实现了虚拟校园的漫游功能,但由于水平与时间上的限制,离完善仍有不少差距。需要改进与完善的地方如下:

1.增加交互功能,比如添加远程教学,虚拟实验室等项目,使得系统除了浏览功能外还兼具教学功能。

2. 需要开发更多特殊效果,如动态水流、雨/雾天气效果等。

3. 进一步完善模型模型的建立,美化模型的表现效果,使之更为逼真。

4. 优化代码及模型的构建,降低系统对计算机资源的占用,提高系统的渲染速度。

 

 

 

 

 

 

【参考文献】

[1]张金镝. X3D虚拟校园系统开发与设计:[硕士学位论文]. 吉林大学, 2011.5

[2]周希望. 基于X3D的虚拟校园交互式漫游系统:[硕士学位论文].北京服装学院,2009.12

[3]刘光然. 虚拟现实技术. 清华大学出版社, 2011.1

[4]党保生. 虚拟现实及其发展趋势. 中国现代教育装备, 2007

[5] 陈丁山, 乔波. 三维全景虚拟校园的研究与应用. 福建电脑,2008.5:96-97

[6] 施贵刚, 程效军. 网络虚拟校模园三维建方法研究与实现. 工程图学学报, 2008.2

[7]张金钊, 张金锐等. X3D立体动画与游戏设计. 电子工出版社, 2008.1

[8] Ch.Bouras. Schafer. Advances in X3D multi-user virtual environments, Proceedings of the Seventh IEEE International Symposium on Multimedia (ISM’05), 2005.12

[9]胡小强. 虚拟现实技术基础与应用. 北京邮电大学出版社,2009.2

[10]秦文虎, 狄岚等. 虚拟现实基础及可视化设计. 化学工业出版社, 2009.8

[11]万剑华, 郑红霞等. 基于 VRML的虚拟校园中的三维景观建模. 计算机应用与软件, 2004.7: 82-84

[12]樊文平, 祝启刚, 卢艳. 利用 VRML 技术解决3D GIS中的三维可视化问题. 水利科技与经济, 2006.12(4):263-265

[13]刘尚勤. 基于X3D的虚拟环境可视化建模技术应用的研究:[硕士学位论文]. 江南大学,2005.5

[14]况扬, 胡小强. 虚拟校园的建造. 科技广场, 2005.12:39-40

[15]王卫辰, 江晓红. 徐州师范大学学报(自然科学版). 虚拟校园三维仿真系统的开发与优化. 2004,9(3):29-31

[16]赵庆展, 赵欣, 常静. 虚拟校园全景漫游系统的实现. 石河子大学学报(自然科学版), 2006.2(1):124-125

[17]付佳. 基于 X3D 的模型简化算法研究:[硕士学位论文]. 华中师范大学. 2007.6

[18]张金钊, 张金锐等. X3D三维立体网页设计. 中国水利水电出版社, 2009.6

[19] Ch.Bouras.X3D Multi-user Virtual Environment Platform for Collaborative Spatial Design,27th International Conference on Distributed Computing Systems Workshops

(ICDCSW'07),2007

[20]靳敏, 郁宇. 虚拟现实在学校建设中的应用. 黑龙江工程学院学报(自然科学版), 2007.2: 25-27.

[21]李敏. 基于OpenGL的虚拟校园漫游系统的设计与实现:[硕士论文].山东大学, 2008.5

[22] 李建伟, 吴学伟, 苗前军, 王金良. 虚拟现实演示系统的开发. 东北林业大学学报. 2006, 34(3):93-94.

 

 



看大家都在讨论什么

0 条评论
免费下载 ×

下载APP,支持永久资源免费下载

下载APP 免费下载
温馨提示
请用电脑打开本网页,即可以免费获取你想要的了。