收藏 分享(赏)

虚拟教室交互系统的设计与实现.docx

上传人:wo7103235 文档编号:6236402 上传时间:2019-04-03 格式:DOCX 页数:32 大小:6.07MB
下载 相关 举报
虚拟教室交互系统的设计与实现.docx_第1页
第1页 / 共32页
虚拟教室交互系统的设计与实现.docx_第2页
第2页 / 共32页
虚拟教室交互系统的设计与实现.docx_第3页
第3页 / 共32页
虚拟教室交互系统的设计与实现.docx_第4页
第4页 / 共32页
虚拟教室交互系统的设计与实现.docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、I摘 要本文是以教室漫游模型作为应用背景,研究虚拟漫游计算机技术,为当下各式各样的虚拟漫游,提供了一种科学先进的方法。针对虚拟漫游交互方便性、有效性和相对廉价等需求,设计出了一种虚拟漫游的系统。通过运用 Unity 3D 相关技术,通过交互动画等方式,使虚拟漫游获得了全新的展示和全新的应用方式。通过系统方面的分析与归纳,展现出了新时代下虚拟漫游领域中数字技术的应用,从而推动了虚拟漫游技术快速发展。相信在不久的将来这种展示技术会被广泛地应用,我们会被带入一个崭新的视觉体验中。关键词: 教室漫游;虚拟漫游;Unity 3D技术;IIAbstractIn this paper, classroom

2、roaming model for the application background, Virtual Tour of computer technology for a variety of virtual roaming, provides a scientifically advanced methods. Virtual Tour for interactive convenience, effectiveness and relatively inexpensive demand, designed a virtual roaming system, by using Unity

3、 3D technology through interactive animation manner that Virtual Tour with a new display and application mode. By analyzing and induction system, showing the new era of digital technology in the virtual roaming applications, thus promoting the development of virtual roaming technology, I believe tha

4、t the future of display technology will be widely used, we will bring a new vision experience.Keywords: Classroom roaming Virtual Tour Unity3d technologyIII目录1 绪论11.1 课题研究的背景及意义11.2 研究现状11.3 本文研究的主要内容21.4 本文组织结构22 相关技术及开发工具介绍32.1 软硬件平台简介32.2 虚拟现实技术介绍32.3 关键技术与开发工具介绍42.3.1Unity3D 虚拟现实引擎42.3.2 开发工具介绍5

5、3 系统总体设计分析83.1 总体结构分析83.2 概要设计83.3 研究的主要目标分析84 详细设计104.1 确定系统单位104.2 设计详细过程164.2.1 自动漫游的实现164.2.2 动态加载功能实现184.2.3 材质实现194.3 最终效果图205 总结与展望15.1 总结15.2 展望1参考文献2致谢311 绪论1.1 课题研究的背景及意义随着计算机技术的发展,特别是三维仿真技术、计算机图形学和虚拟现实技术的快速发展,信息管理方面的数字化以及实物模型的虚拟化已经成为了当今世界十分重要的技术应用的领域。人们已意识到了虚拟现实技术潜在的应用前景,所以虚拟现实技术几乎成了所有发达国

6、家如今大力研究和探索的前沿领域,其发展程度也达到了前所未有的迅速。目前,美国、德国、英国、日本、韩国等发达国家在虚拟现实技术领域的研究做的相对较好。我国的虚拟现实技术的研究起步比较晚,与国外的一些发达国家存在一定的差距,我国正在逐渐开始去探索和研究建设数字城市和数字社区等领域的实践。虚拟现实(又称为 VR) ,被称为精神环境的技术 1,是一种交互仿真的技术,它同时也可以比作一个直观的、用户类型的抽象和复杂的计算机数据的空间。在这互动的 3D 环境中,不仅能让玩家感到十分逼真的场景和模型的存在,同时也可以进行实时的与运动联合作战的精确响应。虚拟现实技术不但让人机交互界面去创建了一个全新的研究领域

7、,与此同时也为智能工程的应用提供了全新的接口设备,它提供了在宏观是因为各种原因,并没有直接观察,提供人类极大的方便的住区,提供了一个接口。更加自然和环境为所有类型的培训技能与培训和数字媒体部门,例如影视、娱乐等数字媒体部门,提供了一种崭新的、交互的、更具刺激性和更富有实感的新兴的技术。1.2 研究现状虚拟现实技术探索和研究的发源地是美国,美国的研究水平实际就意味着国际虚拟现实技术的发展水平。近几年,虚拟现实获得美国航空航天和军事等若干领域的成功应用并因此收获了经济和社会的巨大效益,进一步推动美国在虚拟现实技术研究方面的支持力度 2。 在军事相关领域,虚拟现实的出现在武器系统的操作训练、性能评估

8、与设计和大规模的军事演练以及战役指挥等方面发挥出了重要的作用,并由此产生了巨大的经济收益。美国已然在一些洲际范围内建成了分布式的虚拟环境,并把所有的人操纵,同时将半自主兵力引到虚拟的空间里,这使其在世界上处于最领先的位置。2我国在虚拟现实技术的研究方面起步较晚,与发达国家存在一定差距,但近些年来,我国逐渐开始对虚拟现实技术重视,虚拟现实技术的研究已被国家科委、国防科工委列为重点攻克对象。虚拟现实的研究和应用也在国内许多研究机构和高校进行,并且取得了不错的一些研究成果 3。 例如清华大学国家光盘工程研究中心研究的“布达拉宫”获得很好的成果;北京航空航天大学的研究成果则是由其计算机系完成的用虚拟现

9、实与可视化新技术的研究室集成的分布式虚拟环境;虚拟现实大全景的实现;国家重点实验室之一浙江大学CADCameraObjects3.SetActive(true); tempRainParent = CameraObjects; /第一人称切换按钮public void SetPlayerController() foreach (GameObject o in CameraObjects)if (o.activeSelf)o.SetActive(false);CameraObjects2.SetActive(true); tempRainParent = CameraObjects;194.2

10、 设计详细过程4.2.1 自动漫游的实现自动漫游功能是该系统的基本功能,用户可以自己自由控制移动参观浏览。用户能通过鼠标或键盘操作参观教室如图 4-1 所示:图 4-1 漫游实现图该功能模块具有摄像机旋转功能和人物移动功能。其中移动功能就包含了两种操作方式。一种是键盘控制,包括了方向键控制或 W/A/S/D,可以采用 Unity3D 内部的自带的角色控制器 First Person Controller 组件。它使用的是一个胶囊体对象,在其上方捆绑着主摄像机。该功能的主要实现函数是 transform.Translate()和 Input.GetKey()。函数 Input.GetKey()主

11、要是监测用户的键盘输入按键值,该函数是属于 Input 类的成员函数;而 transform.Translate()函数则是用于平移物体。可以去调用系统时间类中的Time.deltaTime,这样一来物体就可以按固定的速率移动。为了可以让用户简单的操作,第二种操作方式是鼠标左键的操作。当鼠标点击地面时,发出一条射线,在 3 维空间中会检测到地面与射线交点,然后根据交点的位置,人物移动过去。该功能还能检测用户按住鼠标的时间,如果其操作时间超过 0.2s,人物则开始奔跑。其核心代码如下:if(Input.GetMouseButtonDown(0) /按下鼠标左键后 20Ray ray = Came

12、ra.main.ScreenPointToRay(Input.mousePosition);/从摄像机的原点向鼠标点击的对象身上设法一条射线RaycastHit hit; if (Physics.Raycast(ray, out hit) /当射线片撞到 point = hit.point; /得到在3D世界中点击的坐标transform.LookAt(new Vector3(point.x,transform.position.y,point.z); /设置主角面朝这个点,主角的X与Z轴不应当发生旋转,if(Time.realtimeSinceStartup - time =0.2f)/用户

13、是否连续点击按钮SetGameState(HERO_RUN); /连续点击进入奔跑状态 elseSetGameState(HERO_WALK);/点击一次只进入走路状态 在场景驱动中值得注意的是碰撞检测,不管是自由视角的模式还是行走的模式,都必须要设置物体物理属性,使物体不会“穿墙而过” ,在这里需要给每个物体添加可以执行碰撞检测的组件,ComponentPhysicsMesh Collider,这样一来它们就具备了碰撞检测的功能,同时又不至于影响其性能。摄像机旋转功能具体是指用户按住鼠标的右键,然后移动鼠标去达到摄像头上下左右旋转。这里需要用到的是 Unity3D 封装的欧拉角 Transf

14、orm.eulerAngles。首先,通过 GetMouseButtonDown()函数去确定鼠标是否按下。接着,获取到鼠标沿 X 方向与 Y方向移动的距离;X 方向的移动距离会按一定的比例缩放后,添加到摄像机欧拉角 y方向值上,而 Y 方向移动距离则对应欧拉角 x 方向值上。在 Update()函数中进行编写,系统会在每一帧中都调用到 Update()函数,这样,就可通过每一帧来对摄像机的欧拉角进行重新赋值,达到改变摄像机的位置。4.2.2 动态加载功能实现要实现 Unity3D 动态加载的功能,首先,需要使用 XML 去遍历场景,记录下所要的动态加载模型坐标信息。信息记录完毕以后,再把模型

15、制作成预制物体,进行打包。21XML 记录模型的信息其中包括空间坐标系的位置、模型名称、缩放、选择。其部分核心代码如下:foreach (GameObjectobj in Object.FindObjectsOfType(typeof(GameObject) /遍历模型文件XmlElementgameObject = xmlDoc.CreateElement(“gameObjects“); /创建名称元素gameObject.SetAttribute(“name“,obj.name);/记录模型名称gameObject.SetAttribute(“asset“,obj.name + “.pre

16、fab“); XmlElement transform = xmlDoc.CreateElement(“transform“);/创建平移元素XmlElement position = xmlDoc.CreateElement(“position“); XmlElementposition_x = xmlDoc.CreateElement(“x“);/创建平移位置x轴元素position_x.InnerText = obj.transform.position.x+“;/设置x轴值XmlElementposition_y = xmlDoc.CreateElement(“y“); positio

17、n_y.InnerText = obj.transform.position.y+“;/设置y轴值XmlElementposition_z = xmlDoc.CreateElement(“z“); position_z.InnerText = obj.transform.position.z+“;/设置z轴值position.AppendChild(position_x);/将position_x作为子节点插入position节点中position.AppendChild(position_y); position.AppendChild(position_z); 该代码主要是用来记录平移坐标

18、 x、y、z 三个分量值和模型的名称。当场景导出完成时,编辑器便会生成一个 XML 场景配置文件。接着就需要把 Unity3D 场景中模型文件制作成资源包。需要用到 Unity3D 自身带有的 BuildPipeline 编译管线类去制作资源包。它是一个编辑器类,使用该类的时候必须把它放置于工程目录下的 Assets/Editor 文件夹下。同时去引用 UniytEditor 来命名空间。使用 Selection.GetFiltered()函数来获取到模型对象,然后设置资源包生成以后的存22放路径 Application.dataPath 和生成路径,接着使用 BuildPipeline.Bu

19、ildAssetBundle()函数来创建资源包。创建资源包如图 4-2 所示:图 4-2 资源包创建示意图制作完成 XML 场景配置文件与模型资源包文件以后,需要做的是将它们放置于服务器上。用户在前端浏览的时候,后台会开始自动加载。当从后台下载文件时则需要用到 WWW 类。其核心的功能代码如下:IEnumeratorLoadMainGameObject(string path)/开启另一进程WWW bundle = new WWW(path);/通过服务器下载资源包yield return bundle;/等待加载完毕object= Instantiate(bundle.assetBundl

20、e.mainAsset)/获取资源包内容bundle.assetBundle.Unload(false);/释放对象资源 下载好资源包后,需要根据 XML 来解析场景信息,还原场景。其过程是将 XML之中的数据遍历读取出来,接着将资源包里的模型文件按照相关坐标信息,在 3D 场景中生成。使用 Instantiate(object,pos,Quaternion.Euler(rot),函数参数是对象名称,坐标和旋转角度。4.2.3 材质实现教室需要实现一个双面透明材质来模拟玻璃效果。该效果使用 Shader 着色器来实现。Shader 包含了一个材质属性查模块 Properties,任何定义在着色

21、器上的属性都会显示在器查看器上。着色器还包含一个子着色器 Subshader,在编写过程中还要用到渲染23命令逻辑组 Category。其核心代码如下:Shader “ Translucence /Double Sided “ /定义着色器名称Properties _Color (“Main Color“, Color)= (1,1,1,1)/定义主颜色属性_ExpColor(“Exp Color“, Color)= (1,1,1,0)/定义特殊颜色属性_EmsMap(”Map Color“, Color)= (0,0,0,0)_Radiation ( “Radiation“, Range (

22、0.1, 1)= 0.7/定义一个浮点范围属性_MainTexture(“Base (RGB )Trans. (Alpha)“, 2D )= “white“ /定义一个2D纹理属性white Category Tags Queue=Transparent/渲染队列为透明队列SubShaderMaterial Diffuse _Color Ambient _Color Shininess _Radiation/漫反射颜色Specular_ExpColor Emission _EmsMap /设置镜面高光颜色. 4.3 最终效果图U3D 教室漫游系统主界面包括开关灯、开关风扇、自动漫游、退出控件按

23、钮。开关灯按钮主要控制教室内灯光的开关,开关风扇主要控制教室内风扇的开关,自动漫游主要实现教室场景自动漫游的功能。242515 总结与展望5.1 总结经过这两个多月的学习和工作,本人终于完成了虚拟教室交互系统的设计与实现的论文。从抽到论文题目开始,到完成论文主题的过程,对本人来说每一步都是新鲜的尝试,每一步都是全新的挑战,这也是本人在大学期间独自完成的最大的项目。与此同时,本人也学到了许多以前从未涉及的知识,而且每一个新的知识都要自己去独立学习和掌握,期间更是遇到了很多困难与阻力,所以在这过程中也产生出许多不同的情绪和情感,消极跟积极的是主要的情绪,因为有了它们在整个过程中的交替才会有现在的进

24、步。刚开始对于 Unity3D 和 3DS Max 的工具,并不怎么了解,在这样的情况下,本人开始独自去学习和测试,查找了相关的信息和相关的书籍,把原来模糊的概念逐渐去理解清晰。所以当我们对一个事物还不够了解的时候却又想去真正了解的时候,只要肯执著去学习,一步一个脚印,每天进步一点点,总是会有收获的。在整个学习工作的过程中,每个测试的成功都会让本人兴奋好一段时间。而在设计期间,本人遇到了很多以前从来没有遇到过的大大小小的问题,有些问题甚至是完全不明白的。例如:各种模型的建立,都用到了什么样的命令,参数的大小是否对模型的变化有影响等等但是后来,自己通过到网上搜查资料和翻阅相关方面的书籍,以及通过

25、多方面向老师请教和部分同学之间的交流等,把遇到的这些问题都一一解决了,这是本人感到非常兴奋的一件事情。同时本人也感受到了一个室内场景空间原来是可以带给人们精神的放松和心灵的慰藉,是一个能和家人一起享受天伦之乐的欢乐空间。因此,室内场景可以说是对每个人来说都是心灵的避风港,所以,在设计室内场景和空间布局的时候,要倾注自己细腻的感情和满腔的热情,使设计出来的场景空间布局更为人性化。这次做毕业论文的经历,使本人终身受益,同时也觉得到原来认真用心地做一件事情的时候,是需要投入很大的热情跟很多的精力的,而且也是一个真正的自己学习的过程和研究的过程,培养自学能力的同时提升自主探索问题的能力,没有自己的埋头

26、苦干,永远也不会有所突破,至于做好论文只是一个小小的开始,更大的突破将会不断出现在本人埋头苦干的基础上,而本人的人生的突破的开始就是做好如今的毕业设计。希望这次经历能让本人在以后学习中继续激励着本人成长与进步。25.2 展望本文是针对目前风靡全球的 3D 虚拟漫游技术展开了研究。随着信息技术、数字技术的迅猛发展的同时也出现了很多的阻力,直到目前为止,有很多技术领域还未被充分的利用。审美和艺术技术的完美结合,将城市更广泛的,更现代化的展示出来。新事物如果符合事物的发展的客观规律和前进趋势,将会同时具备强大生命力和远大发展前途,一方面是让现代的城市在新材料和新技术的影响下展现出强大的生命力和源源不断的创作力,另一方面则是促使了现代城市的艺术家们运用崭新的思维,去面对历史、面向未来、相互渗透、相互吸收和相互交融。全方位的去激活艺术的想象,并且努力拓展未知的审美领域,使得艺术的表现呈现出无穷的丰富性的过程,从而创作出更多的优秀的城市作品。这种探索与创造,为城市以及环境艺术增添了无穷的活力,所以本人坚信,在现代的环境中,随着 3D 数字虚拟漫游技术的广泛运用,必将更好的推动新时期数字与艺术技术完美结合,从而城市的展现形式会更加的多样化,更好地拓展和丰富城市的内容以及成果,为城市的美好发展提供崭新的方向。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报