青岛农业大学局部校园漫游系统(参考模板)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

青岛农业大学
毕业论文(设计)
题目:青岛农业大学局部校园漫游系统
的研究与开发
姓名:
学院:理学与信息科学学院
专业:计算机科学与技术
班级: 2010级01班
学号: 20102852 指导教师:王艳春
2014年06月01日
青岛农业大学局部校园漫游系统的研究与开发
摘要:随着教育体制的改革,学校招生规模越来越大,管理日趋信息化,各高校之间的竞争也越来越大,使得开发虚拟校园系统成为各高校的必然选择。

本文在充分研究碰撞检测、纹理贴图、场景漫游等技术的基础上,以青岛农业大学部分场景为蓝本,以3DMAX为主要建模工具,以Photoshop为图片处理工具,以Unity3D为集成开发环境,搭建了虚拟场景,实现了场景的操作漫游、自动漫游以及飞行漫游,并成功发布为网页版,从而为青岛农业大学数字化校园建设提供了有益的参考。

关键词:虚拟校园;场景漫游;碰撞检测;数字校园
Research and Development of Partial Campus Roaming
System of Qingdao Agriculture University
Abstract: With the reform of education system, the school recruitment of students scale become more and more large and the competition between universities is more and more tough, which makes the development of virtual campus roaming system a necessary choice for universities.
On the Basis of sufficient research of collision detection, texture map and roaming technologies, this paper built a virtual scene comprised part scene of Qingdao Agricultural University and achieved the virtual campus roaming system including automatic roaming, operation-roaming and air-roaming, using 3DMax as the main modeling tool, applying Photoshop as the image processing tool, and adopting Unity3D as the integrated development environment. Finally, the system was successfully released for the web page, which provides a beneficial reference for the digital campus construction of Qingdao Agricultural University.
Keywords: virtual campus; scene roaming; collision detection; digital campus
目录
1 绪论 (1)
1.1 研究背景及研究意义 (1)
1.1.1 研究背景 (1)
1.1.2 研究意义 (1)
1.2本文研究内容 (2)
1.3本文结构安排 (3)
2 系统总体设计与主要开发工具 (4)
2.1 系统需求分析 (4)
2.2 虚拟场景总体设计 (5)
2.3 系统实现流程 (6)
2.4 系统实现环境和开发工具的选择 (7)
2.4.1建模工具的分析与选择 (7)
2.4.2 集成环境的分析与选择 (8)
3 三维场景的构建与优化 (9)
3.1 资料的收集与整理 (9)
3.2 模型的建立 (9)
3.2.1 建筑物模型的建立 (9)
3.2.2 树木模型的建立 (11)
3.2.3 其它模型的建立 (12)
3.3 三维场景的制作 (14)
3.4 模型及场景的优化 (15)
4 漫游系统的实现与项目发布 (16)
4.1 碰撞检测 (16)
4.2 漫游的实现 (17)
4.2.1人工漫游的实现 (17)
4.2.2 自动漫游的实现 (18)
4.2.3 飞行漫游的实现 (19)
4.3 项目发布 (19)
4.4 系统漫游实例展示 (20)
5 总结与展望 (24)
参考文献 (25)
致谢 (26)
1 绪论
1.1 研究背景及研究意义
1.1.1研究背景
近些年来,虚拟现实技术受到人们的普遍关注,它是借助计算机技术来生产非常逼真的三维虚拟环境,并且提供人与物体的交互功能,从而给而人以视觉、听觉、触觉等感官的模拟,能够使用户产生二维动画所不具备的现场沉浸感[1]。

作为一种新兴技术,虚拟现实已在机器人学、认知科学、人工智能、网络技术等多个学科和领域崭露头角,展现了其广泛的应用水平,并向人类展示了其光辉的应用前景[2]。

虚拟现实技术的不断成熟无形中也带动了虚拟校园的发展。

青岛农业大学是一所各方面发展协调的大学,青岛校区更是景色怡人,随着教育质量的不断提高,招生力度也在不断加大,考生的生源地不仅仅局限于本省,而是分布在全国各地。

然而,学校的宣传力度还不够,许多考生和家长希望在报考之前能了解学校的整体环境,然而事先到学校考察未免耗费精力财力,虽然有纸质和网页版的文字图片宣传,但是很难将学校的环境和基础设施生动地展现。

1.1.2研究意义
虚拟校园具有形象展现学校的校容校貌、有力提高学校的招生竞争力、增强校园规划管理等功能,故虚拟校园漫游系统的开发具有十分重要的实践意义和应用前景[3]。

1. 展现学校特色
青岛农业大学是一所以农学为主要特色的学校,校园景色优美,植被种类众多,校园不仅是我们生活的场所,也是我们学习的课堂和研究的实验场。

与其它学校不同,我们的虚拟校园不仅仅以展示学校建筑为主,对于花草树木以及老师
带领学生实地学习的场面也要有所体现,让用户体验到学校浓郁的学习氛围。

2. 提高学校声望地位
如今,许多高校已经开发了自己的虚拟校园系统,虚拟校园的作用不仅仅是使浏览者浏览到学校的真实景观,也能够将学校近年来在各方面取得的进步成果展现在用户面前,是学校教育实力的展示,让用户感知到这是一所各方面协调发展的综合性大学。

3. 提高招生竞争力
为了争取优秀的考生,各高校都在积极加大宣传力度,但是宣传方式大多还只局限于二维图片和文字。

区别于二维图片和文字,虚拟校园可以将学校的现实景观通过网络呈现给用户,不管距离多远,想要报考本校的考生,通过计算机,足不出户就可以游览校园,熟悉校园环境,如同身临其境,可以有力地起到宣传作用,从而提高学校的竞争力。

4. 方便校园规划管理
随着招生数量的加大,校园建设也在不断完善。

旧建筑要翻新,还要建立新的教学区、宿舍区、餐厅等等,校园的扩建实需慎重,然而实景勘测存在诸多不便,且不够直观。

通过虚拟校园,可以对学校未来的规划布局进行预设,从而选择最佳建设方案,给决策者提供方便。

5. 使学生尽早熟悉校园生活
青岛农业大学占地1425亩,教学区、宿舍区楼房众多,每年新生入学都有找不到路的情况。

虚拟校园不仅能够展示校园全景,是新生尽早熟悉学校布局,还提供自动寻路功能,系统会找到距离目的地的最短路径,漫游过去,为新生引路,让刚刚进入校园的学生尽早熟悉校园生活。

1.2本文研究内容
1. 简单研究了青岛农业大学局部校园虚拟漫游系统的开发背景和研究意义。

2.对虚拟校园系统进行了非常详细的需求分析,并在此基础上完成了系统的
逻辑结构设计,进而进行了数据采集。

3. 研究三维场景建模技术。

根据地形、道路、建筑物、树木以及其它辅助设施的不同特点,研究不同的建模方法,以创建占用内存小、效果佳的模型。

4. 研究纹理贴图技术。

对场景建模中的不同物体采集图像,这里有信息楼图片、化学楼图片、主楼图片、虹子广场等,还有部分从网上下载的材质,利用图像处理软件进行各种处理,方便以后贴放到建筑物上,使其更加真实。

5. 研究场景漫游优化技术。

包括对模型的处理,代码控制等,尽量创建出真实感强、渲染速度快的漫游系统。

6. 研究碰撞检测及交互技术。

研究碰撞检测技术,以避免穿墙而过,特别是对不规则物体添加碰撞检测,要添加优化,提高效率。

研究基于GUI的交互技术和基于碰撞检测的交互技术,尽量使浏览者感到真实、方便。

1.3本文结构安排
本系统以从青岛农业大学虹子广场到信息楼,及周边植物、道路、河流等环境为蓝本,设计开发了一个逼真的、场景渲染流畅的青岛农业大学局部虚拟漫游系统。

第一章是绪论,主要介绍了虚拟校园这一课题的研究背景,并对本文的主要研究内容和论文的组织结构作了简要说明。

第二章从需求分析入手,介绍了系统的总体设计和开发流程,并对开发工具的选择进行了分析论证。

第三章详细介绍了不同模型的建立方法、场景的搭建及其注意事项以及模型和场景的优化技术。

第四章的主要内容是本系统虚拟场景的漫游实现。

首先介绍了漫游实现的基础——碰撞检测,接着介绍了三种漫游方式,最后简单说明了项目发布的步骤。

第五章是对整篇文章的总结,提出了系统的优势和不足,并对系统未来的发展提出期望。

2 系统总体设计与主要开发工具
2.1 系统需求分析
青岛农业大学建校以来,不断发展壮大,如今,为响应国家和政府的号召,已把校园信息化建设作为重中之重。

学校目前已具备比较完善的网站,可以实现成绩录入、信息查询、公告发布、资料下载等功能,但对学校的展示还只停留在文字和图片上,学校领导和校规划处对校园的规划建设只基于二维平面图。

虚拟校园系统应做到对整体校容校貌的三维空间展示,但是因为青岛农业大学占地面积巨大,植被种类众多,建筑物复杂多样,因此,本系统主要实现青岛农业大学局部场景的建模和漫游。

1. 实现从虹子广场到信息楼之间主要建筑的三维模型建立,包括主楼、化学楼和信息楼,尽量做到逼真且占用内存小。

2. 实现对搭建场景的不同路径自动漫游,系统分两条自动漫游路径,是依据主要道路而事先设置好的。

3. 实现系统中虚拟场景的碰撞检测,避免人物穿树而过或者穿墙而入。

使人物可以顺利过桥和攀爬台阶。

4. 实现手动漫游,用户按照自己的意愿在系统中随意漫游,观赏校园建筑和景观。

5. 实现自动漫游,开发者事先选取主要道路,设定为主要游览路径,使用户不必自己操作就可以游览校园。

6. 实现飞行漫游,使用户可以高空俯瞰以实现虚拟化的青岛农业大学场景,了解建筑物布局。

7. 场景和模型的优化,通过各种优化技术,使模型能耗小,漫游通畅,给用户身临其境的感受。

8. 系统发布为网页版,使用户通过网络访问该系统,而不必下载安装客户端。

2.2 虚拟场景总体设计
本系统总体场景布局如图2-1。

在本系统的虚拟场景中包含了许多的模型,本系统根据不同模型所具有的特点采用了不同的建模方式。

模型的创建主要通过3DMAX,而场景的搭建主要在Unity3D中完成。

天空、地面和河流引用Unity3D中自带的包,树木主要采用十字建模技术,草地则采用贴图代替,以提高渲染速度。

应注意问题:
1.养成良好的命名习惯。

由于模型在使用过程中可能进行多次修改,所以
在创建过程中应注意给创建物体重命名,选择简单而容易识别的名称,
做好做到见名知意,方便自己以后修改使用。

给物体赋予材质时,材质
球的命名应参照物体命名,方便识别和修改。

所有命名尽量使用英文加
数字,Unity3D不识别中文。

2.分清主次。

在不影响系统整体外观的前提下,完全可以忽略哪些繁琐的
细节。

有些建筑物的细节结构复杂,分段数多,且漫游时可能被植物遮
挡,这样的细节可以忽略,或者用纹理贴图代替,以提高渲染速度。

3.及时使用成组命令。

对一个物体不同部位的编辑完成后,或者不同模型
之间的位置摆放就位后,注意使用成组命令将其组合,以防在以后的工
作过程中不小心将其移动错位。

将模型从3DMAX导入到Unity3D集成开发环境的过程中,应注意以下几个问题:
1.模型的导入格式应设为.fbx,目的是为了方便Unity3D的识别。

2.导入单位设置。

Unity中的1个单位是fbx文件中的1个单位的100倍,
Unity以米为基本单位,所以,3DMAX中模型的单位要设为厘米。

这样导
入后,才能保证物体尺寸不变。

3.3DMAX中Z轴为向上轴,而在Unity3D中,Y轴为向上轴,因此在到处设
置中,注意设置Y轴为向上轴。

2.3 系统实现流程
首先是理论知识准备。

通过阅读大量虚拟校园和虚拟现实方面的文章,对于虚拟校园的发展背景、研究现状及主要应用技术进行初步了解。

其次是需求分析,确定系统应该实现的功能、实现虚拟化的区域以及采用的编程语言和开发工具。

然后进行地理信息数据的采集。

地面道路及楼体的长宽可以通过校园规划平面图获得,但是由于缺乏青岛农业大学建筑物的建造图纸,只能通过拍照,采集照片,然后选取参照物,通过软件测算出其三维尺寸。

对于地面的植被树木,趁春夏季节生长茂盛时采景,为了后期处理图片方便,图片应尽量少重合、无杂质、背景简单。

第四,开始主要建筑物的建模,本系统主要是主楼、化学楼和信息楼。

采用开发工具主要为3DMAX和Photoshop,模型的建立严格参照测得的数据,部分材质参数的设置参照图2-2标准。

图2-2 3DMAX物体材质参数设置标准
第五,系统中其它物体的建模。

本系统中的所有道路奠定了场景搭建的基础,是整体场景的骨架。

桥梁的建设忽略了细节,主要通过圆柱体和正方体拼接而成。

树木部分采用了3DMAX自带的模型,部分十字交叉建模。

第六,模型的导入与场景的搭建。

Unity3D自带Terrain地形编辑,可以方便地创建不同的地形。

第七,碰撞检测的添加和漫游的制作。

手动漫游通过第一人称控制器实现,指定路线漫游则借助了时下比较流行的itween插件实现。

最后,发布为网页版,使用户通过浏览器就可以访问本系统。

2.4 系统实现环境和开发工具的选择
2.4.1建模工具的分析与选择
目前,比较流行的建模软件有Sketch Up、AutoCAD、MAYA、3DMax等。

Sketch Up的长处是在设计的时候提供最快的立体效果,它的建模精度不如3DMAX高,只是辅助设计的软件,而MAYA只有在材质表现和角色动画上,效果优于3DMax,在影视特效上也略高于3DMax[4]。

AutoCAD是一款被广泛应用于平面绘制的软件,
也有人看重它在平面基础上建模的优势,从而把它作为建模软件,但它的缺点是可视性较差,这也是它没有在建模领域占领主流地位的原因之一。

3DMAX支持大量插件,在动画的处理方面独具优势,建模功能强大,支持多种导出格式,此外3DMAX因操作简单,与其他相关软件的配合度也很高[5]。

在界面设计方面,3DMAX采用三视图与透视图相结合的方式,不但直观,还达到精确建模的目的,收好了用户的广泛认可。

目前,3DMAX的优势已经在辅助教学、广告、影视等多个领域得到认可,是一种功能强大的三维建模工具[6]。

综上所述,3DMAX以其界面友好、功能强大、拓展性好、操作简单、容易上手等优点赢得了广大用户的青睐,本系统也采用3DMAX为建模工具。

2.4.2 集成环境的分析与选择
目前,实现虚拟漫游的主要集成环境有OpenGL、VRML、Unity3D等,其中,OpenGL集成了大量的纹理影像、渲染、特殊效果和可视化函数,能够生成逼真的三维场景[7],但是,它的包装性比较差,代码的编写非常繁琐,不容易掌握。

VRML独立于计算机平台的建模语言,由于其低宽带运行的特点,在网络多用户交互等方面独具优势[8]。

但是VRML的语言功能目前还不是很强,特别是在碰撞检测的代码编写方面需花大量时间处理。

Unity3D的主要应用领域是游戏开发制作,兼容性各种操作系统,支持C#、JavaScript、Python等多种脚本语言[9],开发环境比较直观,其自带丰富的资源包和脚本也给用户提供了方便,由于其简单易学,容易上手,已受到很多用户的青睐,具有良好的发展前景。

3 三维场景的构建与优化
3.1 资料的收集与整理
本系统以青岛农业大学实景为蓝本,虚拟系统最主要的任务就是给人身临其境的感受,而资料的采集直接影响到场景的搭建和展现给用户的视觉效果,是不可忽略的关键环节。

资料又分为两类,一类是数据资料,主要包括道路、树木和楼体的三维数据;另一类是图像资料,主要是物体的贴图,这类资料的收集主要有两个途径,一是相机拍摄,然后图片处理;二是网络下载,随着建模技术的成熟,网络上的贴图库也越来越丰富,很多建筑材质贴图在网上就能下载,省时又省力。

本系统的资料收集过程如下:
1.收集校园整体的俯视图,选择将要用到的部分,用图像软件放大,然后
打印。

2.实地测量。

因平面图中没有任何数据提供,所以需要使用测量工具手动
测量,并将测量数据记录到打印的平面图上。

3.采集照片。

通过数码相机实地取景,经Photoshop处理,作为纹理贴图
使用。

3.2 模型的建立
模型的建立是虚拟校园建设中最繁琐、工作最重的环节,建模效果不仅关系到系统表现的真实性、能否给用户带来沉浸感,也将影响场景的渲染速度。

3.2.1 建筑物模型的建立
建筑物主要是指楼梯,这里以化学楼为例,介绍模型建立过程。

3DMAX主要有3种建模方式,多边形建模、面片建模和NURBS建模,多边形建模简单易学,容易上手,且在表现细节方面独具优势
[10]。

因此,本系统选用多边形建模为主要建模方式。

主要建模思想为:
1. 划分单元。

将楼体看作一个个相同的单元组成,只需描绘一个单元,然后通过复制或者阵列命令即可构造楼梯的概貌。

化学楼的某楼体单元如图3-1所示。

图3-1 化学楼单元
2. 阵列命令构造楼层。

通过工具菜单中的阵列命令,调整变换增量,可以快速准确地复制多个单元,从而构造整个楼层。

化学楼楼层如图3-2。

图3-2 化学楼楼层
3. 选中构成楼层的所有单元,通过成组命令组合,然后再次利用阵列工具,向上复制楼层,就可以完成楼体主要部分的制作。

4. 补全细节。

制作台阶、底墙、楼顶等。

化学楼模型完成图3-3。

图3-3 化学楼模型
3.2.2 树木模型的建立
树木模型采用十字交叉法建立,主要思想是通过两个垂直相交的面片加上贴图来模拟真实树木。

实现步骤如下:
1. 通过3DMAX制作两个相互交叉的面片,面片的尺寸参照树的高度和投影直径。

制作过程应注意交叉点的选择,只有选择面片中心为交叉点,才能保证模型从各个角度观察无错位。

效果如图3-4所示。

图3-4 十字交叉树模型
2. 模型导入到Unity3D中,并摆放好位置。

在模型从3DMAX导入Unity3D 的过程中,应注意以下问题:
a)导入格式应设为.fbx,方便Unity3D识别。

b)导入单位设置。

Unity中的1单位是fbx文件中的1单位的100倍,Unity 以米为基本单位,所以,3DMAX中模型的单位要设为厘米。

这样导入后,才能保证物体尺寸不变。

c)3DMAX中Z轴为向上轴,而在Unity3D中,Y轴为向上轴,因此在到处设置中,注意设置Y轴为向上轴。

3. 贴图的添加。

将事先处理好的png格式树木贴图导入贴图文件夹,因为导入的两个面片公用一个材质球,所以只需将贴图赋予其中一个就可以。

需要注意的是,将查看面板中的阴影方式改为垂直混合型,隐藏贴图背景。

实现效果图如图3-5所示。

图3-5 十字交叉树
3.2.3 其它模型的建立
Unity3D引擎内置了一个功能十分完善的地形编辑工具—Terrain Editor,开发人员利用它可以方便快捷的制作出各种复杂的地形[11]。

需要注意的是,地面创建之后,默认高度为0,因此不能使用“下降”工具。

本系统地面的创建过程如下:
1.创建地面,通过“资源”菜单导入地面资源包。

2.利用提升工具将整体提升距离地面200米。

3.利用提升工具制作出小山,利用下降工具制作出河道。

地面工具的作用效果如图3-6。

图3-6 地面工具作用效果图
直路建立非常简单,用平面或立方体都可以;弯路的建立存在一定难度,它需要参照实际道路的弯曲角度和弯曲位置等。

为了使道路之间的拼合更加精确,本系统采用3dmax建立道路。

需要注意:
1. 道路之间留出建筑物及草坪的场地,尺寸要准确;
2. 人行道、主道路和路牙要分离为不同物体,以便赋予不同材质;
部分道路模型如图3-7所示。

图3-7 道路模型
3.3 三维场景的制作
场景的拼接在Unity3D中实现,其实现过程如下:
1. 将制作好的模型导入model文件夹,然后拖放道路模型到制作好的地面上,注意,道路一定要与地面紧密贴合,但是不可嵌入地面,否则会出现闪烁现象;
2. 导入建筑物模型,拖放到适当位置。

然后,用Terrian中的下降工具制作出河道,安置好桥梁模型;
3. 最后是树木模型的摆放,应保证漫游过程中从每一个视角观看,都自然美观。

按照上述步骤搭建的场景俯视图如图3-8所示。

图3-8 场景搭建俯视图
三维场景创建后,应为系统添加光源以模拟太阳光。

Unity3D为用户提供了点光源、面光源、聚光灯和平行光源,本系统采用添加平行光源来模拟太阳光。

天空和水的制作是通过导入Unity3D自带的sky和water资源包,Unity3D提供了多种天空材质,可以在编辑菜单的渲染设置中进行选择,本系统选择了sunny1 sky材质,实现效果如图3-9所示。

图3-9 添加环境效果图
3.4 模型及场景的优化
由于三维校园模型是虚拟校园系统中一个非常重要的组成要素,故在对校园校园的三维场景进行建模时,应该使模型与现实中实体尽量逼真,以达到加强真实感的效果。

而三维模型的表现效果取决于面的数量,数量越多,渲染效果越逼真,越接近于现实 [12]。

但是,详细的细节表现又会影响渲染速度,因此需要在两者之间寻找一个平衡,既不影响模型外观,有能获得较快的渲染速度。

本系统的主要优化技术如下:
1.减少物体分段数;
2.删除不可见的面;
3.降低图片分辨率,使用gif、gpeg等占用内存较小的图片;
4.减少模型数量,通过筛选,只留下具有表现力的建筑物模型;
5.漫游过程中只渲染人物周围的景物,而对远距离场景不进行渲染。

6.尽量使用纹理贴图。

有时候,物体复杂的构造不必精细地描绘,可以使
用具有立体感的纹理贴图来代替。

因为一幅贴图代替的简单模型比由成千上百个点线面构造的模型具有更快的渲染速度和不会过于逊色的渲染效果[13]。

4 漫游系统的实现与项目发布
4.1 碰撞检测
碰撞检测是虚拟漫游系统中对物体间碰撞行为的检测,是虚拟校园漫游系统的必备功能,它对物体间的碰撞行为进行测试并作出处理,例如人物是否撞到墙面等[14]。

碰撞检测是实现人工漫游的前提,主要作用是阻止漫游人物直接穿过树木墙面等物体。

Unity3D提供两种碰撞检测功能,一种是碰撞器,一种是触发器。

碰撞器包含多类,包括Box Collider、Capsule collider、Sphere Collider、Mesh Collider等。

所谓触发器,只需在物体的检视面板中勾选Is Trigger属性选框。

但是导入的模型,一般不带触发器,这种情况需要人工添加碰撞器。

碰撞器的添加有两种方法,一种是添加上述多种碰撞器的一种,另一种是勾选模型的检视面板中的Generate Colliders选框,这种办法能够提供精确的检测,但是资源能耗大,不建议使用。

本系统中,我们给楼体添加盒装碰撞器,给树木添加胶囊体碰撞器,这种方式既能节约资源,又可以起到很好的碰撞检测功能。

以化学楼为例,碰撞器的添加如图4-1。

图4-1 化学楼碰撞检测器
4.2 漫游的实现
为了更好的展示校容校貌,让用户较详细了解校园建设和校园文化,保证用户漫游时能较好地与环境进行交互,以达到身临其境的感觉,本系统提供了3种漫游方式:操作漫游、自动漫游以及飞行漫游。

4.2.1人工漫游的实现
人工漫游是指用户根据自己的意愿在虚拟场景中漫游,类似于在校园中散步。

本系统采用第一人称控制器实现漫游,该控制器自带脚本,可实现行走、跳跃等功能。

其操作说明如下:
W:向前行S:向后退
A:向左行走D:向右行走
空格:跳跃鼠标:镜头方向
本系统中第一人称控制器的具体属性设置如图4-2所示。

图4-2 控制器属性设置
4.2.2 自动漫游的实现。

相关文档
最新文档