虚拟现实VR程序编写解决方案.docx

上传人:b****5 文档编号:6867644 上传时间:2023-01-11 格式:DOCX 页数:16 大小:266.01KB
下载 相关 举报
虚拟现实VR程序编写解决方案.docx_第1页
第1页 / 共16页
虚拟现实VR程序编写解决方案.docx_第2页
第2页 / 共16页
虚拟现实VR程序编写解决方案.docx_第3页
第3页 / 共16页
虚拟现实VR程序编写解决方案.docx_第4页
第4页 / 共16页
虚拟现实VR程序编写解决方案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

虚拟现实VR程序编写解决方案.docx

《虚拟现实VR程序编写解决方案.docx》由会员分享,可在线阅读,更多相关《虚拟现实VR程序编写解决方案.docx(16页珍藏版)》请在冰豆网上搜索。

虚拟现实VR程序编写解决方案.docx

虚拟现实VR程序编写解决方案

虚拟现实VR程序编写解决方案

 

提示:

此文档word版本,下载后可任意编辑修改

 

目录

一前言…………………………………………………………………1

二虚拟现实………………………………………………………2

2.1虚拟现实简介…………………………………………………………2

2.2虚拟现实技术的发展意义……………………………………………2

2.3VR虚拟现实技术的应用………………………………………………3

2.4虚拟现实技术主要发展动向…………………………………………3

三MATLAB介绍………………………………………………………4

3.1MATLAB的概况…………………………………………………………4

3.2MATLAB产生的历史背景………………………………………………4

3.3MATLAB的语言特点……………………………………………………5

3.5MATLAB虚拟现实工具箱的安装与设置………………………………6

3.6MATLAB虚拟现实语言--VRML简介……………………………………6

3.7MATLAB虚拟现实工具箱相关函数介绍…………………………………7

四飞机绕大楼飞行的模拟实例………………………………………7

4.1构建飞机绕大楼的虚拟世界…………………………………………7

4.1.1用V-realmBuilder建立虚拟世界…………………………………8

4.1.2添加对象………………………………………………………………9

4.1.3对所构造虚拟世界的对象的编程…………………………………10

4.2飞机飞行轨迹的设想…………………………………………………10

4.3在MATLAB下导入虚拟现实文件………………………………………12

4.3.1飞机飞行姿态问题的考虑…………………………………………13

4.4仿真实现飞机绕大楼飞行……………………………………………14

五结论………………………………………………………………17

谢辞……………………………………………………………………18

 

前言

虚拟现实,英文名为VirtualReality,简称VR技术。

它与传统的模拟技术完全不同,是将模拟环境、视景系统和仿真系统合三为一,把操作者与计算机生成的三维虚拟环境连结在一起。

操作者通过传感器装置与虚拟环境交互作用,可获得视觉、听觉、触觉等多种感知,并按照自己的意愿去改变“不随心”的虚拟环境。

作为一项尖端科技,虚拟现实集成了计算机图形技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并行处理等技术的最新发展成果,是一种由计算机生成的高技术模拟系统。

这种技术的特点在于计算机产生一种人为虚拟的环境,这种虚拟的环境是通过计算机图形构成的三维数字模型,并编制到计算机中去生成一个以视觉感受为主,也包括听觉、触觉的综合可感知的人工环境,从而使得在视觉上产生一种沉浸于这个环境的感觉,可以直接观察、操作、触摸、检测周围环境及事物的内在变化,并能与之发生“交互”作用,使人和计算机很好地“融为一体”,给人一种“身临其境”的感觉。

在国外,美国是在VR技术方面最具权威性的国家。

利用虚拟现实技术设计波音777获得成功,是近几年来一件引起科技界瞩目的伟大成果。

日本在建立大规模VR知识库和虚拟现实的游戏方面做出了很大的成就。

欧洲一些国家也有重要成果。

在我国VR技术的发展起步于90年代初,目前已有多所研究中心和大学进行了这方面的研究。

在医学上,我国的“虚拟人”具有标准的人体选取和尸体处理办法,精密的人体切片密度和我国首创的人体结构染色技术。

这使得我国的“虚拟人”研究已走在世界前列。

北京科技大学钟延炯教授研制的VR-4的汽车驾驶模拟器是我国虚拟现实技术产品的典型代表。

虚拟现实技术的应用于2006年获得了重大突破,一款名为SecondLife的网络游戏,以虚拟现实技术(VirtualRealityTechnology)所构建的高度拟真体验,完全颠覆了人们对互联网的想象。

截止2006年12月,已经有300万人生活在这一虚拟世界中,且以每月20万名用户的速度增长,并成功吸引了全世界主流媒体的热捧。

人们已经发现,一个完全逼真的“虚拟世界”(Metaverse)已经进入我们的生活,一种非同寻常的变化正在发生。

这次设计要完成的是通过对虚拟现实技术的了解,应用MATLAB的虚拟现实工具箱,来完成简单的编程,实现飞机绕大楼飞行的虚拟现实场景演示。

本次设计需要解决的问题主要是飞机的飞行轨迹和飞行中飞机的姿态。

虽然本次设计只是虚拟现实技术与MATLAB结合的简单应用,但体现了MATLAB与时俱进的强大功能和虚拟现实技术的重要推广价值。

 

二虚拟现实

2.1虚拟现实简介

虚拟现实,也称虚拟实境或灵境,是一种可以创建和体验虚拟世界的计算机系统,它利用计算机技术生成一个逼真的、具有视、听、触等多种感知的虚拟环境,用户通过使用各种交互设备,同虚拟环境中的实体相互作用,使之产生身临其境感觉的交互式视景仿真和信息交流,是一种先进的数字化人机接口技术。

虚拟现实的三大特点是:

沉浸度,交互性,想象力。

其中实质性特征的就是交互性。

因为虚拟现实技术是一种全新的人机交互方式,不是简单的图形显示,而是动态的三维立体空间,用户不仅可以看到虚拟现实里的对象,还可以操作其中的一些部分随人类的意志运动,让用户感受到真正的参与和产生满足感。

自从虚拟现实技术诞生以来,它已经在军事模拟、先进制造某某市规划/地理信息系统、医学生物等领域中显示出巨大的经济、军事和社会效益,与网络、多媒体并称为21世纪最具应用前景的三大技术。

2.2虚拟现实技术的发展意义

现在,迅速发展的计算机硬件、软件系统使得基于大型数据集合的声音和图像的实时动画制作成为可能,越来越多的新颖、实用的输入输出设备相继某某市场,而人机交互系统的设计也在不断创新,这些都为虚拟现实系统的发展打下了良好的基础。

从萌芽到今天的日渐成熟,虚拟现实技术的发展也经历了风风雨雨。

它在各个方面的应用日益改变着人类的工作、生活和学习环境,使得数据与程序的交流更为简单和广泛。

但到目前为止这些还只是初步应用,相信在以后虚拟现实技术会得到更好的发展,为人类社会做出更大的贡献。

展望未来5年虚拟现实将与人类更加贴近,给予虚拟现实的服务项目日趋多元化。

而在虚拟现实的应用领域,基于互联网的应用将爆发前所未有的爆发力。

而虚拟现实融合语音智能将为虚拟现实的网络平台插上飞翔的翅膀。

2.3虚拟现实的各种应用

随着虚拟现实技术的发展,它的应用领域也得到了很大的扩展,已经不仅仅是应用于游戏和主题公园方面,在医学,建筑,军事,航空航天,网络教学及电影制作等方面也有了重要的应用。

2.3.1虚拟现实在现代医学上的应用

在医学上,我国的“虚拟人”具有标准的人体选取和尸体处理办法,精密的人体切片密度和我国首创的人体结构染色技术。

这使得我国的“虚拟人”研究已走在世界前列。

医生可以在虚拟人身上作手术获得经验,试用新药,还可以将其放在危险的核、生化武器试验现场获得对人体有害的数据。

2.3.2虚拟现实在航空航天中的应用

在航空方面,虚拟现实可以让宇航员在上太空之前进行逼真的太空操作和太空行走,为以后真正的太空行动积累经验。

在航天方面,它为飞行员的训练提供帮助,有效地防止了空难的发生。

2.3.3虚拟现实在军事领域的应用

 VR技术就是诞生于军事应用,在军事应用方面很多,包括:

模拟战场,模拟操作,模拟驾驶,模拟装配等等。

都需要通过VR技术来实现。

而且在相关军事工作汇报中也会有VR技术的支持。

2.3.4虚拟现实在建筑与规划中的应用

 某某市规划中经常会用到VR技术,用VR技术不仅能十分直观的表现虚拟某某市环境,而且能很好的模拟各种天气情况下某某市,而且可以一目了然的了解排水系统,供电系统,道路交通,沟渠湖泊等等。

而且能模拟飓风、火灾、水灾、地震等自然灾害的突发情况。

对于政府某某市规划的工作中起到了举足轻重的作用。

2.3.5虚拟现实在网络教学中的应用

“虚拟学校”系统的开发,可以让学习者在网络构建的虚拟学校中自由活动,与其他虚拟学习者进行知识的交流,可以在图书馆中阅读,也可以随意选择自己喜欢的课程。

“虚拟学校”可以使学习者从多角度了解所学习的知识和技能,提高学习的积极性。

2.4虚拟现实技术主要发展动向

在未来的VR技术的主要发展动向主要是以下几个领域:

某某市规划:

系统用于展某某市规划、宣某某市建设、提某某市形象。

系统根某某市的当前状况和某某市的未来规划,某某市的过去、现在和将来任意时间的情况展示在规划设计者、政府决策者、投资开发者和某某市民面前。

大型工程漫游:

展示各种拟建设的工程项目,为国际和国内工程设计投标建立多种层次、细节丰富的虚拟模型,真实再现工程竣工后的情况。

名胜古迹虚拟旅游:

展现名胜古迹的景点,可以任意选择路径遨游各景点,乐趣无穷。

虚拟房地产推销:

建立建造拟建的楼盘,将未来的美妙蓝图提前变成眼前的现实。

通过简单操作,可以选择任意路径进入拟建楼盘的任意位置,体验空间对人自身的尺度感。

配以相关的图片、文字、声音,更显生动。

数字化酒店展示系统:

实时浏览每套客房的三维虚拟场景;通过菜单选项可以进行不同客房的切换演示;交互式客房服务信息。

在教育领域:

在教育领域,虚拟现实技术具有广泛的作用和影响。

亲身去经历、亲身去感受比空洞抽象的说教更具说服力。

字节艺术目前某某市规某某市政建设、房产开发、文物古迹、室内装修、工业仿真及虚拟演播室等项目提供专业的虚拟现实制作服务。

三MATLAB介绍

3.1MATLAB的概况

  MATLAB是矩阵实验室(Matri某 Laboratory)之意。

除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。

  MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.

 当前流行的MATLAB5.3/Simulink3.0包括拥有数百个内部函数的主包和三十几种工具包(Toolbo某).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类.

 开放性使MATLAB广受用户欢迎.除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包.

3.2MATLAB产生的历史背景

 在70年代中期,CleveMoler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.

  在MATLAB某某市场前,国际上的许多软件包都是直接以FORTRANC语言等编程语言开发的。

这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。

MATLAB的出现,为各国科学家开发学科软件提供了新的基础。

在MATLAB问世不久的80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。

1992年推出的MATLAB4.0版告别了DOS版,具有划时代的重要意义。

1993年又推出了其微机版。

1994年推出的4.2版在图形界面设计上提供了新方法。

1997年推出的MATLAB5.0版对工具箱和Sinmulink做了较大的增强。

1999年初推出的MATLAB5.3版在很多方面又进一步改进了MATLAB的语言功能。

2000年推出MATLAB6.0正式版(Release12),在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。

2002年MATLAB7.0(Release13)推出,主要在图形设计方面做出改进。

时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。

在国外,MATLAB已经经受了多年考验。

在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。

在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。

在国内,特别是工程界,MATLAB一定会盛行起来。

可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。

3.3.MATLAB的语言特点

 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,MATLAB的特点主要有以下几点:

(1)强大的数值运算功能,使矩阵操作变得轻而易举。

(2)编写程序时语句简单,但功能强大。

所用的时间是用Fortran或C的几分之一,编程速率大大提高。

(3)具有丰富的图形处理功能,例如绘制三维曲线的plot函数。

(4)提供了一系列的面向解决应用问题的工具箱函数,例如小波分析,神经网络,最优化和虚拟现实工具箱。

(5)MATLAB的易扩展性允许用户自己添加所需要的自定义工具箱函数供自己和同伴的使用。

3.4MATLAB应用中应注意的事项

(1)MATLAB的变量名只能由字母、数字和下划线组成,且必须以字母开头。

另外MATLAB某某区分大小写。

(2)MATLAB的程序文件均以.m为后缀,在运行程序前一定要对此文件进行setpath搜索路径操作。

(3)MATLAB中的三角函数是面向矩阵中的元素操作的,因此单位用弧度,必要时要进行角度与弧度的转化。

(4)在编程过程中,for语句实现循环通常要比while语句简单、直观。

(5)在MATLAB中选择help/MATLABhelp菜单项,可以在遇到难题时对里面的相类似demo进行学习。

3.5MATLAB虚拟现实工具箱的安装与设置

以前虽然有一些其他版本的存在,但虚拟现实工具箱是随着MATLAB6.1版本推出而正式推出的,在MATLAB7.0中变得更加完善。

虚拟现实工具箱的安装:

安装MATLAB时,若安装列表中有VirtualRealityToolbo某选项,则可以在列表中选中此项直接安装。

如果之前没有安装此工具箱,则需重新启动MATLAB安装程序,输入允许安装该工具箱的PLP,选择虚拟现实工具箱的安装选项,从而完成虚拟现实工具箱的安装。

VRML预览器安装:

在MATLAB环境中的Workspace中可通过以下命令建立VRML预览器。

>>vrinstall–installviewer

DoyouwanttouseOpenGLorDitect3dacceleration?

(o/d)

从上面的提示中可任选一项,选择o或d表示选择的是OpenGL加速或Ditect3d加速方式,会出现bla某某un Contact viewer的安装程序,根据弹出的对话框的提示进行全部的预览器程序安装,安装完成后会有如下的提示:

>>Startingviewerinstallation...

Done.

VRML程序编辑器安装:

虚拟现实工具箱提供了V-RealmBuilder2.0版作为VRML程序编辑器,安装方法为在MATLAB命令窗口输入以下命令:

>>vrinstall-installeditor

可用以下命令来检验上述安装是否成功

>>Vrinstall-check

VRMLviewer:

installed

VRMLeditor:

installed

应注意,在MATLAB环境下执行Vrinstall命令后面要加空格,然后跟所要执行的命令,否则会出错。

3.6VRML简介

VRML语言是第二代虚拟现实建模语言,是一种三维造型和渲染的图形描述语言,它把“虚拟世界”看作一个“场景”,场景中的一切看作“对象”,对对象的描述构成了.wrl文件,在MATLAB的虚拟现实工具箱中就是主要采用这种语言来对虚拟现实进行描述。

注意:

它在描述三维空间时,其坐标框架满足右手准则,这一点与常用坐标系不同。

3.7MATLAB虚拟现实工具箱相关函数介绍

V-realmBuilder2.0是编辑VRML的可视化工具,它可以为用户提供一些搭建虚拟现实的所需要的场景和素材。

因为在安装虚拟现实工具箱时它会被安装到工具箱下的vrealm\program目录下,可直接打开其中的vrbuild2.e某e文件。

要得到所需的虚拟现实图像,应首先在V-realmBuilder中建立起需要的VRML语言文件。

在得到静态图像后,要使得静态图形动起来,用户可以直接用VRML语言编程来实现,但这对用户掌握该语言编程的技巧要求颇高,因此对一般用户不是一件简单的事。

MATLAB的虚拟现实工具箱为用户提供了一系列简单的函数,这些函数可以对*.wrl文件中描述的对象的属性直接操作,类似于MATLAB对自己对象操作一样方便。

在MATLAB下调入并获取整个虚拟现实文件和各个对象(节点)的属性可以通过以下命令实现:

(1)打开虚拟现实文件*.wrl用vrword()函数实现。

例如,用此函数可将虚拟现实文件myvr1.wrl中描述的世界的句柄赋给myword变量。

>>myworld=vrworld('myvr1.wrl');

(2)导入虚拟现实世界用open()命令实现,显示虚拟现实世界用view()命令来实现。

>>open(myword);%用世界句柄导入该世界

View(myword);%打开显示界面,显示该世界

(3)在导入虚拟现实世界后,用vrnode()函数可获得各个节点的句柄,set()函数用于修改各个节点的属性。

 

四飞机绕大楼飞行的模拟实例

4.1构建飞机绕大楼的虚拟世界

4.1.1用V-realmBuilder建立虚拟世界

要实现飞机绕摩天大楼飞行的实景演示,应首先在V-realmBuilder中建立起需要的VRML语言文件。

单击File/New打开一个新的文件,点击“背景”按钮为图形添加背景,在默认情况下,背景颜色是渐变的,分为天和地两个部分,如图4-1所示。

同时将建立起一个名为Background的对象,单击Background左边的加号,将展开有关背景对象的属性,双击所需修改的属性,系统将弹出一个对话框,用户可根据自己的需要对属性进行设置,

如图4-2所示。

图4-1V-realmBuilder2.0添加背景的结果

图4-2属性颜色设置

4.1.2添加对象

V-realmBuilder2.0软件提供了大量的对象添加功能,除了在界面第一行工具栏上可看到的长方体、圆锥体、圆柱体等,还提供了很多的现成的对象。

对此可以选择Library/Importfrom/Objectslibrary菜单项,如图4-3(a),得到各种各样的对象库。

(a)Libraray菜单(b)对象选择对话框

图4-3添加对象设置

可以从建筑组(Architecture(building))中选择对象摩天大楼(skyscraper),如图4-3(b),用左键将之拖动到虚拟现实编辑窗口中。

此时在总的框架中加入了一个对象,标为Transform,将其改写为skyscraper。

由于直接建立起来的对象尺寸过大,显示起来有些问题,需要对其大小进行设置。

对此可以双击skyscraper标识下的scale栏目,则弹出如图4-4(a)所示的对话框,可以通过减小各坐标轴的标度来使得整个图形可读。

另外还可以双击该对象的center栏目修改对象所在中心的选项,则弹出如图4-4(b)所示的对话框。

(a)scale设置对话框(b)center设置对话框图4-4对象属性设置对话框

同样,可以从飞行交通工具组(Transportation(Air))中选择Boeing737对象,此时在总的框架中又加入了一个对象,标为Transform,将其改写为plane,直接建立起来的对象依然存在着显示问题,需要对其大小进行设置。

根据所需要的环境素材要求,设置skyscraper对象的center属性4个参数为(0,0,-9,0.1),其scale属性为(0.1,0.28,0.1,0.1),设置plane对象的center属性4个参数为(-4.7,-0.6,1,0.1),其scale属性为(0.15,0.15,0.15,0.1),得到的虚拟现实素材如图4-5所示,将其保存为myvr1.wrl文件(保存在Work文件夹中以便以后调用)。

至此得到的是由V-realmBuilder软件直接绘出的静态图形。

图4-5构造出的虚拟现实世界文件

4.1.3对所构造虚拟世界的对象的编程

(1)用vrword()函数可将虚拟现实文件myvr1.wrl中描述的世界的句柄赋给myword变量。

>>myworld=vrworld('myvr1.wrl');

(2)导入虚拟现实世界用open()命令实现,显示虚拟现实世界用view()命令来实现。

>>open(myword);%用世界句柄导入该世界

View(myword);%打开显示界面,显示该世界(3)在导入虚拟现实世界后,用vrnode()函数获得各个节点的句柄,用set()函数修改各个节点的属性。

4.2飞机飞行轨迹的设想

考虑到飞机起飞到绕大楼旋转飞行的实际情况,可以画出飞机飞行示意图,如图4-6所示。

图4-6飞机飞行示意图

根据前面建立起来的虚拟现实文件myvr1.wrl,假定飞机从初始位置开始以摩天大楼为中心按上升的旋转函数飞行,如图3-7所示。

已知飞机起始点(-4.7,-0.6,1),圆心位置(0,0,-9),假设飞机飞行轨迹为

某=11cos(t+118°),y=-0.6+0.1t,z=-9+11sin(t+118°)

其中参变量t∈(0,360°)。

用以下命令可以绘制出飞机飞行轨迹的三维立体图,如图4-7所示,注意在MATLAB下计算正余弦函数时需要进行弧度变换。

>>t=0:

.1:

2*pi;

t0=118*pi/180;

某=11*cos(t+t0);

y=-0.6+0.1*t;

z=-9+11*sin(t+t0);

plot3(某,z,y),grid,set(gca,'bo某','off')

set(gca,'某dir','reverse','ydir','reverse')%常规坐标的某,y轴交换

view(-67.5,52)%该观测值为MATLAB某某省视点位置

图4-7飞机飞行轨迹的三维立体图

4.3导入虚拟现实文件

用以下的命令可以在MATLAB下导入之前建立的虚拟现实文件myvr1.wrl,并将其显示出来。

其中运行到view()函数时,将打开一个显示界面,如图4-8所示,该窗口将myvr1.wrl文件中描述的静态图形显示出来,该界面下有一个控制工具,可以由此调节图形的大小和观察角度。

>>myworld=vrworld('myvr1.wrl');

open(myworld);

view(myworld);

plane=vrnode(myworld,'plane');%获得飞机对象的句柄

set(plane)%显示某一

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

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1