虚拟现实毕业论文54

上传人:zhan****gclb 文档编号:63122353 上传时间:2022-03-17 格式:DOCX 页数:57 大小:1.34MB
收藏 版权申诉 举报 下载
虚拟现实毕业论文54_第1页
第1页 / 共57页
虚拟现实毕业论文54_第2页
第2页 / 共57页
虚拟现实毕业论文54_第3页
第3页 / 共57页
资源描述:

《虚拟现实毕业论文54》由会员分享,可在线阅读,更多相关《虚拟现实毕业论文54(57页珍藏版)》请在装配图网上搜索。

1、毕业设计(论文)专用纸虚拟现实在超市及餐厅中的控制学 校:昆明理工大学津桥学院系 部:计算机科学及电子信息工程系专 业:计算机科学与技术年 级:2006级学生姓名:周晨学 号:200616021107指导教师:徐武毕业设计(论文)专用纸Virtual Reality in supermarkets and restaurants in the controlUniversity:Oxbridge College,Kunming University of Science and TechnologyDepartment:Computer Science and Eletronic Inform

2、ation EngineeringSpecialty: Computer Science and TechnologyClass: 2006Studentss Name: Zhou ChenStudents Number: 200616021107Faculty Adviser: Xu Wu毕业设计(论文)专用纸-第- VI -页 -目录目录I摘要IV关键词IVAbstractVKey wordsV前言VI第1章 虚拟现实技术11.1 虚拟现实技术简介11.1.1 虚拟现实技术的概念11.1.2 虚拟现实技术的关键技术11.2 VRML概述21.2.1 VRML简介21.2.2 VRML应用和

3、展望2第2章 其它技术支持3ds max与JavaScript42.1 3ds max概述42.1.1 3ds max简介42.1.2 3ds max的特点42.1.3 3ds max的应用领域52.2 JavaScript概述52.2.1 JavaScript简介5第3章 使用3ds max技术构建模型73.1 3ds max构建模型的准则73.2 3ds max构建模型的基本方法73.2.1 基本体建模73.2.2 二维线形建模73.2.3 三维修改器建模83.3 利用3D制作动画9第4章 使用VRML技术构建动画与交互功能104.1 使用VRML构建动画与交互功能的基本语法104.1.1

4、 使用VRML构建动画的基本插补器类型104.1.2 使用VRML构建交互功能的基本传感器类型104.2 使用VRML构建动画114.2.1 使用VRML构建马桶盖的开启114.2.2 使用VRML构建压力锅的烟雾及开启124.2.3 使用VRML构建天空134.3 使用VRML构建交互功能144.3.1 使用VRML构建冰柜门开启的交互功能144.3.2 使用VRML构建超市收银的交互功能154.3.3 使用VRML构建超市点击收获物品的交互功能164.3.4 使用VRML构建超市大门伸缩开启的交互功能174.3.5 使用VRML构建油烟机声音的交互功能184.4 使用VRML构建视点、灯光

5、194.4.1 使用VRML构建固定视点194.4.2 使用VRML构建跟随视点20第5章 使用JavaScript构建动态场景的交互235.1 使用JavaScript构建动态场景交互功能的实现235.1.1 利用 JavaScript创建微波炉旋转加热动画245.1.2 利用JavaScript构建洗手池水龙头的的交互功能265.1.3 利用JavaScript构建燃气灶开关和火焰大小的交互功能275.1.4 利用JavaScript实现购物车收获物品和收银之间切换的交互功能30结论32总结与体会33谢辞34参考文献35附录一 翻译原文36附录二 翻译译文42虚拟现实在超市及餐厅中的控制摘

6、要虚拟现实(Virtual Reality,简称VR),是一种基于可计算信息的沉浸式交互环境,具体地说,就是采用以计算机技术为核心的现代高科技生成逼真的视、听、触觉一体化的特定范围的虚拟环境,用户借助必要的设备以自然的方式与虚拟环境中的对象进行交互作用、相互影响,从而产生“沉浸”于等同真实环境的感受和体验。VR带来了人机交互的新概念、新内容、新方式和新方法,使得人机交互的内容更加丰富、形象,方式更加自然、和谐。虚拟现实近几年发展迅速,应用领域广,发展潜力大,涉及计算机图形学、数字图像处理技术、多媒体技术、网络技术、人工智能等等。它是利用计算机和虚拟现实硬件设备对真实世界的模拟,不仅能使人们在游

7、览虚拟环境的过程中产生身临其境的感觉,并且还能够与虚拟场景进行交互,具备交互性、沉浸性、幻想性和多感知性等特征。本文主要探讨利用3ds max 、VRML与JavaScript编程技术构造虚拟现实场景实现虚拟技术在超市及餐厅中的应用控制,达到运用鼠标控制场景内的物品,向其发出指令使之发生相应的运动变化。例如:餐厅部分中微波了的加热旋转、燃气灶的火焰燃烧、洗菜池的流水调控等等;超市部分中的点击收获物品、收银功能实现等。关键词:超市及餐厅控制,VRML,3ds max, JavaScriptVirtual Reality in supermarkets and restaurants in the

8、 controlAbstractVirtual Reality (Virtual Reality, referred to as VR), is based on quantifiable information, immersive interactive environments, specifically the use of computer technology as the core of the modern high-tech generating realistic vision, hearing, touch the specific integration range o

9、f virtual environment, users with the necessary equipment in a natural way with the virtual environment interaction object, interaction, resulting in immersion in the same feel and experience the real environment. VR has brought a new concept of man-machine interaction, new content, new ways and new

10、 methods to make human-computer interaction is much more rich, vivid, more natural way, harmony. In recent years the rapid development of virtual reality, wide application areas, development potential, related to computer graphics, digital image processing technology, multimedia technology, network

11、technology, artificial intelligence and so on. It is the use of computer hardware devices and virtual reality simulation of the real world, not only enables people to visit the virtual environment, immersive feeling generated in the process, and also be able to interact with the virtual scene, with

12、interactivity, immersion, Fantasy and more aware of other features. This paper discusses the use of 3ds max, VRML and JavaScript programming construct virtual technology virtual reality scene in supermarkets and restaurants in the application control, use the mouse to control objects within the scen

13、e, to issue instructions and make a corresponding change in the movement. For example: The restaurant part of the rotation in the microwave the heating, gas stoves flame burning, vegetables pool water regulation, etc.; supermarket section click on harvest article, cashier function realization.Key wo

14、rds: control of supermarkets and restaurants, VRML,3ds max, JavaScript前言跨入21世纪,人类已经迈入数字化时代,我国信息产业得到迅猛发展。特别是网络技术、多媒体技术、可视化技术及虚拟现实系统的不断更新和发展,使虚拟现实系统发展成为数字化多维信息空间技术支撑平台,并成为构建数字虚拟环境的最重要的关键技术之一。虚拟现实语言作为计算机的核心技术已被广泛应用于社会生活的各个领域,例如产品设计与性能评价、教育与娱乐、高难度和危险环境下的训练、医学、房地产等诸多领域,但在模拟现实生活方面目前的成果还相对匮乏。本系统的主要研究目地在于利用

15、虚拟现实技术模拟出人们在现实生活几乎每天都能接触到的一些事物场景,使人们可以在一个完全虚拟的世界中体会到现实当中的日常生活,感觉上人们在虚拟生活中多了一个“second life”。对今后虚拟现实技术在日常生活方面的应用起到引言预测的研究作用。虚拟场景是计算机通过数字通讯技术勾勒出的数字化场景。虚拟日常生活场景设计是将现实生活中经常接触到、使用到的日常生活场景虚拟化,使人们可以在虚拟的网络世界中感受到现实生活的踪影。实现现实生活中的超市和餐厅的基本陈设、工作流程等,对其中的核心部件进行交互控制,是用户可以轻松体验虚拟场景带来的真实生活。其中交互主要包括:餐厅部分:冰柜门开启、微波炉加热旋转、洗

16、菜池流水调控、抽油烟机音效、燃气灶火焰燃烧、压力锅加热雾化效果等;超市部分:伸缩门开启、点击收获物品、收银结账等等功能。基于VRML虚拟技术的超市及餐厅虚拟场景设计的实现改变了传统的真实场景模式,场景内可以通过鼠标操作,方便而快速地让用户感受到虚拟场景中各种部件的交互使用,创造一个真实的室内场景空间,若再加入一些外部设备,可以使用户产生沉浸感,仿佛自己真的在操控各种物体一样。- 第 VII 页-毕业设计(论文)专用纸 第1章 虚拟现实技术1.1 虚拟现实技术简介1.1.1 虚拟现实技术的概念虚拟现实是近年来出现的高新技术,也称人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用

17、者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。VRML是一项综合集成技术1,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,它用计算机生成逼真的三维视、听、嗅觉等感觉,使人作为参与者通过适当装置,自然地对虚拟世界进行体验和交互作用。该技术集成了计算机图形(CG)技术、人工智能、传感技术、网络并行处理等技术的最新发展成果,是一种由计算机技术辅助生成的高技术模拟系统。概括地说,虚拟现实是人们通过计算机对复杂数据进行可视化操作与交互的一种全新方式,与传统的人机界面以及流行的视窗操作相比,虚拟现实在技术思想上有了质的飞跃。虚拟现实中的

18、“现实”是泛指在物理意义上或功能意义上存在于世界上的任何事物或环境,它可以是实际上可实现的,也可以是实际上难以实现的或根本无法实现的。而“虚拟”是指用计算机生成的意思。因此,虚拟现实是指用计算机生成的一种特殊环境,人可以通过使用各种特殊装置将自己“投射”到这个环境中,并操作、控制环境,实现特殊的目的,即人是这种环境的主宰2。 1.1.2 虚拟现实技术的关键技术实物虚化、虚物实化和高性能的计算处理技术是VRML技术的三个主要方面。实物虚化是将现实世界的多维信息映射到计算机的数字空间生成相应的虚拟世界,为高性能的计算处理提供必要的信息数据。虚物实化通过各种计算和仿真技术使计算机生成的虚拟世界中的事

19、物所产生的各种刺激以尽可能自然的方式反馈给用户。1.2 VRML概述1.2.1 VRML简介VRML是英文Virtuual Reality Modeling Language 虚拟现实造型语言的缩写。其被广泛应用于Internet上创建充满动感的三维虚拟空间。它是一个可参与、可进入、可交互的三维立体世界,给人们带来沉浸感、想象力以及动态交互感知的效果,从而产生置身于真实环境中的幻想感、身临其境的感受。虚拟现实建模语言VRML涉及有关的基本概念和名词是编写VRML的基础,基本术语包括各种节点、域值、事件、路由、原型、场景及脚本等3。1.2.2 VRML应用和展望 虚拟现实建模语言VRML设计,源

20、于虚拟现实技术,是20世纪末发展起来的设计众多学科的高新技术。它集计算机、仿真、微电子、传感与测量技术于一体的高新技术的融合。而虚拟现实建模语言VRML,正式利用虚拟现实技术,在计算机中创建一种虚拟环境,通过视觉、听觉、触觉、味觉、嗅觉以及生理反应等感知器,使用户产生一种与现实生活相同的感受,有身临其境的感觉甚至生理感觉。可实现用户与虚拟现实环境直接惊醒交互。虚拟现实建模语言(VRML)涉及计算机网络、多媒体及人工智能三大领域,以及自然科学、社会科学和哲学等学科领域。具体来讲,虚拟现实环境一般涉及计算机图形学、图像处理、模式识别、传感器、语音处理、网络技术、并行处理、人工智能等高新技术,还涉及

21、天文、地理、数学、物理、化学、美学、医学、军事、生理和心理等领域4。计算机硬件技术、网络技术及多媒体技术的融合与高速发展使得虚拟显示技术获得长足的发展,是虚拟现实技术能在Internet上得以实现和发展。目前网站使用的均为二维图像与动画网页,而在网站上采用虚拟现实建模语言(VRML),则可以设计出虚拟现实三维立体网页场景和立体景物。利用虚拟显示技术可以制造一个逼真的“虚拟人”,为医学实习、治疗、手术及科研做出贡献,也可应用于军事领域而设计一个“模拟战场”来进行大规模的高科技军事演习,既可以节省大量费用,又使部队得到了锻炼。在航空航天发射中,也可以制造一个“模拟航天器”,模拟整个航天器生产、发射

22、、运行和回收的全过程。此外,还可以应用于工业、农业、商业、数学、娱乐和科研等方面,其应用前景非常广阔。总之,VRML是21世纪融计算机网络、多媒体及人工智能为一体的最为优秀的开发工具和手段。- 第 48 页-第2章 其它技术支持3ds max与JavaScript2.1 3ds max概述2.1.1 3ds max简介3D Studio Max,常简称为3ds Max或MAX,是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件,最新版本是2010。在Windows NT出现以前,工业级的CG制作被SGI图形工作站所垄断。3D

23、 Studio Max + Windows NT组合的出现一下子降低了CG制作的门槛,首选开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如X战警II,最后的武士等。在应用范围方面,广泛应用于广告、影视、工业设计、建筑设计、多媒体制作、游戏、辅助教学以及工程可视化等领域。拥有强大功能的3DS MAX被广泛地应用于电视及娱乐业中,比如片头动画和视频游戏的制作,深深扎根于玩家心中的劳拉角色形象就是3DS MAX的杰作。在影视特效方面也有一定的应用。而在国内发展的相对比较成熟的建筑效果图和建筑动画制作中,3DS MAX的使用率更是占据了绝对的优势。根据不同行业的应用特点对3DS

24、 MAX的掌握程度也有不同的要求,建筑方面的应用相对来说要局限性大一些,它只要求单帧的渲染效果和环境效果,只涉及到比较简单的动画;片头动画和视频游戏应用中动画占的比例很大,特别是视频游戏对角色动画的要求要高一些;影视特效方面的应用则把3DS MAX的功能发挥到了极至。2.1.2 3ds max的特点1、功能强大,扩展性好。建模功能强大,在角色动画方面具备很强的优势,另外丰富的插件也是其一大亮点。2、操作简单,容易上手。与强大的功能相比,3ds max可以说是最容易上手的3D软件。3、和其它相关软件配合流畅。4、做出来的效果非常的逼真。2.1.3 3ds max的应用领域1、游戏动画主要客户有E

25、A、Epic、SEGA等,大量应用于游戏的场景、角色建模和游戏动画制作。2、建筑动画北京申奥宣传片等。3、室内设计在3ds max等软件中,可以制作出3D模型,可用于室内设计、例如沙发模型、客厅模型、餐厅模型、卧室模型等等。4、影视动画阿凡达诸神之战等好莱坞电影都引进了先进的3D技术。2.2 JavaScript概述2.2.1 JavaScript简介JavaScript是NetScape公司为Navigator浏览器开发的,是写在HTML文件中的一种脚本语言,能实现网页内容的交互显示5。当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互式的操作来变换网页的内容,

26、以实现HTML语言所不能实现的效果。JavaScript是一种描述性的脚本语言,将JavaScript写入到Web页面当中,能让你的网页更加生动活泼,也是目前网页中设计中最容易学又最方便的语言。你可以利用JavaScript轻易的做出亲切的欢迎讯息、漂亮的数字钟、有广告效果的跑马灯及简易的选举,还可以显示浏览器停留的时间。让这些特殊效果提高网页的可观性6。在VRML中,Script节点包含一个脚本程序。这个程序是用JavaScript或Java写的,Script节点脚本可以接收事件,处理事件中的信息,还可以产生基于处理结果的输出事件。Script节点不创建任何造型,所以它在虚拟世界中也是看不到

27、的。Script节点可以作为子节点包含在任何组节点中,但它不依靠于所使用的系统,而且与子节点所作的选择无关。Script节点一般放在VRML文件的最外层组。利用程序脚本和Script节点,可以差生复杂动作。通常程序脚本动作包括已计算好的动画运动路径的输出。Script节点可以看作是一个节点的外壳:它拥有field域、eventIn事件、eventOut事件,然而可以通过程序脚本来赋予脚本节点的动作。可以这样理解Script节点:通过接受eventIn事件调用了相应的处理过程函数,经过程函数处理后得出的数据作为eventOut出事件发送出去,其中eventIn事件的值可以作为过程函数的因变量的值

28、,如果需要则用field域定义某个中间变量。无论Script节点是直接包含程序脚本,还是将其放在分立的文件中,Script节点的程序脚本定义了此节点的动作。这些动作可以包含由接口eventIn接收的输入的响应,计算新的结果,将这些结果存入节点的接口域,通过节点的接口eventOut发出新值。JavaScript继承了Java语言的面向对象、跨平台等多想特点,有人认为它是为了快速、简单地编程而出现的微型Java语言。鉴于JavaScript在网页设计中成功应用并成为主导编程语言,VRML也将JavaScript作为内嵌编程语言的候选者之一,大部分VRML浏览器都支持JavaScript编写的脚本

29、程序。虽然JavaScript对于大多数应用来说已经足够,但VRML的倡导者之一SGI公司还是基于语言开发了专门针对VRML设计的Vrmlscript语言。Vrmlscript可以说是JavaScript的一个子集,它使用了JavaScript的基本语法,增加了一些适用于VRML的JavaScript对象。如果Script节点内直接包含使用这两种语言之一编写的程序脚本,为了使浏览器能够区分开,必须在url域的字符串开头注明“VrmlScript:”还是“JavaScript:”。JavaScript对VRML场景的访问并不是一定要通过Script节点,如果VRML场景与HTML页面的其它对象相

30、结合,比如使用了JavaScript对象,就可以使用直接访问的方式7。第3章 使用3ds max技术构建模型3.1 3ds max构建模型的准则一个虚拟现实场景在计算机上演示流畅与否,与场景中的模型个数、模型面数、模型贴图这三个方面的数据量息息相关,只有在前期建模时处理好这三个方面的数据量,才不会导致后期演示时出现卡、顿等现象。3.2 3ds max构建模型的基本方法3.2.1 基本体建模3ds max中提供了非常容易使用的【标准基本体】及【标准几何体】建模工具,只需拖动鼠标,即可创建一个几何体。这些基本体靠参数来改变形态的,用这些基本体可以制作一些简单的造型。沙发建模、房屋建模 图3-1 沙

31、发的效果图 图3-2 房屋的效果图3.2.2 二维线形建模二维线形在建模中起着非常重要的作用,通常我们建立的三维模型大都是先创建二维线形,然后添加相应的修改命令来完成的。二维线形也可以直接在建模中使用,它提供了【顶点】、【线段】、【样条线】等修改级别,用二维线形绘制复杂的造型,必须给它添加适当的编辑修改命令,通过这些命令使二维线形生成三维物体,一步步绘制出复杂的结构造型。常见的修改命令如【挤出】、【车削】、【倒角】、【倒角剖面】、【放样】等。洗手池建模、油烟机建模 图3-3 洗菜池的效果图 图3-4油烟机的效果图3.2.3 三维修改器建模在3ds max的修改工具中有大量的三维修改命令,通过使

32、用这些三维修改命令可以对三维对象进行一些复杂的变形和编辑,可以快捷地创建一些精度要求很高的复杂三维造型。常见的修改命令如【FFD】等。 购物车建模、压力锅建模 图3-7 购物车的效果图 图3-8 压力锅的效果图收款机建模图3-9 收款机的效果图3.3 利用3D制作动画在3ds max中可以制作场景动画,导入进VRML里做必要的处理可以形成物体交互的动画,方便快捷的模拟出现实生活的场景。创建动画的方法:(1)单击“自动创建关键点”按钮,开启动画功能。(2)激活所需视图上需要变化的物体,改变其相对位置,确定好方位后点击打点按钮,定下关键帧。依此类推。(3)激活透视图,观察最终动画并加以修改。(4)

33、如图3-10、3-11、3-12所示收银场景应用动画的最终效果。 图3-10收银场景动画应用的原始图 图3-11收银场景动画应用的过程图图3-12收银场景动画应用的最终效果图第4章 使用VRML技术构建动画与交互功能4.1 使用VRML构建动画与交互功能的基本语法4.1.1 使用VRML构建动画的基本插补器类型Timesensor节点的作用像一个时钟,它可以被用来执行开始、停止或者其他控制动画的动作。随着时间的流逝,这个传感器就会产生事件来表示时间的变化。通过将这些事件从Timesensor节点的eventOut路由到其他节点,当Timesensor节点的时钟计时时,可以使这些节点发生相应的变

34、化8。若要使一个坐标系平移、旋转和按比例缩放的话,可以将Timesensor节点时间路由至PositionInterpolator和OrientationInerpolator节点。这些节点中每一个产生新的位置和旋转值,并通过他们的eventOut事件传送这些值。按顺序将这些值路由到Transform节点,就可以使节点的坐标系随动画过程的发展而发生平移、旋转和按比例缩放。根据其所插值的类型而将插补器节点分为几种9:PositionInterpolator位置插补器(用于造型位置的变化,和时间传感器结合一起可以随时间改变对象的位置,从而创建对象移动的效果。同时,这个节点还可以用来控制对象的缩放,

35、实现对象大小和形状的变化)。OrientationInterpolator方向插补器(用于对象的朝向变化,也就是随着时间的变化,对象绕某个轴,逐渐旋转不同的角度,体现出对象的方位的动态变化。)ColorInterpolator颜色插补器(描述颜色随时间的变化,从而使得造型的颜色呈现一种灵活、生动的变化效果)。ScalarInterpolator标量插补器(对某些标量数值的域进行插补的,一般用于只有单一的数值表示的域,比如改变强度,可以调节光照,雾的浓度。材质的透明度等等)。NormalInterpolator法向插补器(能够随时间改变vector的三维向量域值)。CoordinateInter

36、polator坐标插补器(对空间坐标的数值进行插补,但是同位置插补器的情况不同,坐标插补器往往不是用在对造型对象的位置坐标上,而是用在构成某类对象的空间坐标上。)4.1.2 使用VRML构建交互功能的基本传感器类型在虚拟场景中设置了一些具有检测、感知作用的节点,借助这些节点的使用,浏览者和虚拟对象能够实现更进一步的交互10。Touchsensor是一种用来检测观察者的接触和将事件输出的传感器。这些输出描述了在何时、何地观察者接触到了可感知的造型。CylinderSensor,PlaneSensor和SphereSensor节点也可用来检测何时观察者接触到一个可感知的造型11,并且提供了用来改变

37、造型位置和方向的输出。检测器可以分为两大类,一类是接触型的传感器,另一类是感知性的检测器。检测动作的检测器是接触型检测器12,节点有:TouchSensor接触传感器(用于感知用户鼠标触发的动作)、PlaneSensor平面传感器(感知用户在XOY平面上鼠标拖拽动作)、SphereSensor球面传感器(用于感知用户绕中心点拖拽旋转的动作)及CylinderSensor圆柱传感器(用于感知用户绕中心轴拖拽旋转的动作)。检测用户和对象接近程度的检测器是感知检测器,节点有: VisibilitySensor可见性传感器(从浏览者所在的方位,感知一个空间长方体区域,在当前场景中是否可以被看见,据此输

38、出事件触发动画效果),ProximitySensor邻近传感器 (用于从浏览者视点所在的方位,感知用户进入、退出设定的空间长方体区域的动作), Collision碰撞感知节点(用于从浏览者所在的方位,感知用户与该组中任何子节点造型发生碰撞动作)。4.2 使用VRML构建动画4.2.1 使用VRML构建马桶盖的开启在现实生活中,人们可以通过点击按钮来冲洗马桶,为此,在本次设计中通过使用OrientationInterpolator来实现这一功能,并配有冲洗马桶的声音。如图4-1、4-2所示功能实现。以下所示为实现马桶盖关闭的代码:DEF gaizi Transform DEF clock1 Ti

39、meSensor cycleInterval 1loop FALSE DEFa1 OrientationInterpolator key0.0 0.1 0.9 1 keyValue 0 1 1 3.140 -1 0 3.14DEF s TouchSensor Soundsource DEF zb AudioClip urlmatong.mp3ROUTEs.touchTimeTO zb.startTimeROUTE clock1.fraction_changed TO a1.set_fractionROUTE a1.value_changed TO gaizi.set_rotation 图4-1

40、马桶盖关闭动画的原始图 图4-2马桶盖关闭动画的最终效果图在这个程序中,第一条路由的作用是把接触传感器s的touchTime事件域传递域值给声音AudioClip zb的startTime域,开启声音;第二条路由的作用是时间传感器 clock1的fraction_changed事件域传递域值给方位插补器OrientationInterpolator a1的set_fraction域;最后一条路由是方位插补器OrientationInterpolator a1的value_changed事件域传递域值给Transform节点gaizi的set_rotation域,完成动马桶盖关闭动画的全过程。4

41、.2.2 使用VRML构建压力锅的烟雾及开启在显示生活中压力锅工作中会有烟雾产生,通过VRML和cosmo worlds创建烟雾动画和锅的开启,还原真实场景。如图4-3、4-4所示功能实现。 以下所示为实现烟雾动画代码: DEF _12 TimeSensor DEF steam-AniTrigger_13 Script eventIn SFTimetriggerIneventOut SFTimestartTimeeventOut SFBoolfirstTimeurljavascript:function triggerIn(value, time) startTime = value; fir

42、stTime = FALSE; ROUTE steam-AniTrigger_13.firstTime TO _12.set_enabledROUTE _12.time TO steam-AniTrigger_13.triggerIn 图4-3压力锅烟雾动画的原始图 图4-4压力锅烟雾动画的最终效果图程序中第一条路由的作用是脚本steam-AniTrigger_13的firstTime事件域传递域值给时间传感器_12的set_enabled域;第二条路由作用是时间传感器_12的time事件域传递域值给steam-AniTrigger_13的triggerIn域,实现烟雾动画。4.2.3 使用V

43、RML构建天空在虚拟现实中搭建外环境,模仿真实天空,增加场景的真实感。如图4-5所示为天空效果图。以下所示为实现真实感天空的代码:DEF SkyInterp ScalarInterpolator key 0, 1 keyValue 0, 1 textureTransformDEF _34 TextureTransform DEF SkyTimer TimeSensor DEF SkyMove Script eventIn SFFloatfloatINeventOut SFVec2fcoordsOUTurljavascript:function floatIN (value, timestamp

44、) coordsOUT0 = value; ROUTE SkyMove.coordsOUT TO _34.set_translationROUTE SkyTimer.fraction_changed TO SkyInterp.set_fractionROUTE SkyInterp.value_changed TO SkyMove.floatIN 图4-5真实感天空实现的效果图程序中第一条路由的作用是脚本SkyMove的coordsOUT事件域传递域值给_34的set_translation域;第二条路由作用是时间传感器SkyTimer的fraction_changed事件域传递域值给标量插补器

45、SkyInterp的set_fraction域;第三条路由是标量插补器SkyInterp的value_changed事件域传递域值给脚本SkyMove的floatIN域,实现云飘动的动画。4.3 使用VRML构建交互功能4.3.1 使用VRML构建冰柜门开启的交互功能“虚拟现实在超市及餐厅中的应用”为用户提供了场景中物体的一些基本的交互功能,用户可以通过操作鼠标对场景中的物体进行实时交互控制。当程序接收到事件响应后,通过一系列传感器控制物体发生运动。如图4-6、4-7所示为冰柜门开启效果图。以下所示为实现冰柜门开启的交互功能的代码:DEF men1 Transform DEF s1_senso

46、r PlaneSensor maxPosition30 0ROUTE s1_sensor.translation_changed TO men1.set_translation 图4-6冰柜门开启的交互功能的原始图 图4-7冰柜门开启的交互功能的最终效果图在该程序中路由的作用是平面传感器s1_sensor的translation_changed事件域传递域值给men1的set_translation域,完成鼠标控制冰柜门开启的动画。4.3.2 使用VRML构建超市收银的交互功能利用VRML里的多种传感器还原现实生活中中超市购物收银场景,同时配有声音,使人们真正感受到虚拟生活带来的沉浸感、真实感

47、。如图4-8、4-9所示为超市收银功能的实现。以下为实现超市收银功能的代码:DEF Arch_44 FACES01 Transform children DEF wu2 TouchSensor DEF V2Grp01-TIMER TimeSensor loop FALSE cycleInterval 1.667 , DEF Arch_44 PositionInterpolator key 0, 0.060.96, 1, keyValue 0 0 0, 0.5283 1.394 -0.9639,-0.6594 16.37 -8.592, ,Soundsource DEF mtg AudioCli

48、p urlchaoshi1.mp3ROUTE wu2.touchTimeTO V2Grp01-TIMER.startTimeROUTE wu2.touchTime TO mtg.startTimeROUTE V2Grp01-TIMER.fraction_changed TO Arch_44.set_fractionROUTE Arch_44.value_changed TO Arch_44 FACES01.set_translation 图4-8超市收银功能实现的原始图 图4-9超市收银功能实现的最终效果图程序中第一条路由的作用是接触传感器wu2的touchTime事件域传递域值给时间传感器V

49、2Grp01-TIMER的startTime域;第二条路由是接触传感器wu2的touchTime事件域传递域值给AudioClip mtg的startTime域;第三条路由作用是时间传感器V2Grp01-TIMER的fraction_changed事件域传递域值给位置插补器Arch_44的set_fraction域;第四条路由是位置插补器Arch_44的value_changed事件域传递域值给Transform节点Arch_44 FACES01的set_translation域,完成收银功能的动画。4.3.3 使用VRML构建超市点击收获物品的交互功能利用VRML里的多种传感器还原现实生活中

50、中超市购物,点击相应物品物品自动飞入购物车中,实现方法原理与收款相似。如图4-10、4-11所示为超市点击受收获物品功能的实现。以下为实现超市收获物品功能的代码:DEF yi4 Transform childrenDEF n4Trigger TouchSensor DEF n41 KfaAnimation timeSensorDEF Time_22 TimeSensor fieldInterpsDEF n4TranslationInterp KfaPositionInterpolator key 0, 0.02, 1 keyTypes 2, 2 authorKey 0, 1 keyValue

51、0 0 0,-15 -35 10 authorKeyValue 0 0 0,-15 -35 10 ROUTE n4Trigger.touchTime TO Time_22.set_startTimeROUTE Time_22.fraction_changed TO n4TranslationInterp.set_fractionROUTE n4TranslationInterp.value_changed TO yi4.set_translation 图4-10点击收获物品功能实现的原始图 图4-11点击收获物品功能实现的最终效果图本程序中第一条路由的作用是接触传感器n4Trigger的tou

52、chTime事件域传递域值给时间传感器Time_22的set_startTime域;第二条路由是时间传感器Time_22的fraction_changed事件域传递域值给位置插补器n4TranslationInterp的set_fraction域;第三条路由作用是位置插补器n4TranslationInterp的value_changed事件域传递域值给Transform节点yi4的set_translation域,完成点击收获物品交互动画。4.3.4 使用VRML构建超市大门伸缩开启的交互功能利用VRML里的多种传感器还原现实生活中中超市购物,点击大门,大门自动伸缩开启,实现方法原理与收款相

53、似。如图4-12、4-13所示为超市大门伸缩开启功能的实现。以下为实现超市大门伸缩开启功能的代码:DEF UnnamedAnimation0Trigger_1 TouchSensor DEF Time_8 TimeSensor startTime-1cycleInterval5 actorsUSE V2Grp01fieldInterpsDEF V2Grp01TranslationInterp_9 KfaPositionInterpolator key 0, 0.02, 0.04, 0.06,0.96, 0.98, 1 keyTypes 2, 2 authorKey 0, 1 keyValue

54、0 -0.432509 0.00349385,1.00004 5.3063 0.0048702 authorKeyValue 0 -0.432509 0.00349385, 1.00004 5.3063 0.0048702 ROUTE UnnamedAnimation0Trigger_1.touchTime TO Time_8.set_startTimeROUTE Time_8.fraction_changed TO V2Grp01TranslationInterp_9.set_fractionROUTE V2Grp01TranslationInterp_9.value_changed TO

55、V2Grp01.set_translation 图4-12超市大门伸缩开启功能实现的原始图 图4-13超市大门伸缩开启功能实现的最终效果图程序中第一条路由的作用是接触传感器UnnamedAnimation0Trigger_1的touchTime事件域传递域值给时间传感器Time_8的set_startTime域;第二条路由作用是时间传感器Time_8的fraction_changed事件域传递域值给位置插补器V2Grp01TranslationInterp_9的set_fraction事件域;第三条路由作用是位置插补器V2Grp01TranslationInterp_9的value_chang

56、ed事件域传递域值给Transform节点V2Grp01的set_translation域,完成超市大门伸缩开启动画。4.3.5 使用VRML构建油烟机声音的交互功能利用VRML里的touchsensor实现现实生活中中抽烟烟机的工作,同时配有声音的开启和关闭,使人们可以交互控制虚拟的场景。如图4-14所示为抽油烟机工作功能的实现。以下为实现抽油烟机工作功能的代码:DEF anniutouch01 TouchSensor DEF anniutouch02 TouchSensor DEFshengyin Sound source DEF youyan AudioClip loopFALSEROU

57、TE anniutouch01.touchTime TO youyan.startTimeROUTE anniutouch02.touchTime TO youyan.stopTime图4-14抽油烟机工作功能实现的效果图在该程序中第一条路由的作用是接触传感器anniutouch01的touchTime事件域传递域值给AudioClip youyan的startTime域,开启声音;第二条路由作用是接触传感器anniutouch02的touchTime事件域传递域值给AudioClip youyan的stopTime域,关闭声音,完成声音交互。4.4 使用VRML构建视点、灯光4.4.1 使用

58、VRML构建固定视点在一个完整的虚拟现实场景中应有各个角度方面的视角,通过各个视角的切换来系统完整的了解整个场景,本系统中一共设计了13个视点,一边系统完整的观察整个场景;加入灯光效果使整个场景变得通透明亮,更便于观察。如图4-15所示为视点、灯光的实现。以下为实现视点、灯光的代码:DEFnav0 NavigationInfo headlight TRUE DEF huike Viewpoint position70 -40 630description huiketingorientation0 1 0 2fieldOfView1jump FALSE图4-15视点、灯光实现的效果图程序代码中

59、NavigationInfo为头灯,当选择TRUE时为开启状态,使整个场景变亮。huike为一个固定视点,通过调节程序里的position等值确定其位置等属性。4.4.2 使用VRML构建跟随视点为了方便用户观察动态效果,例如超市中购物车的行走路线,特在购物车上加入跟踪视点,使用户可以轻而易举的浏览超市的布局场景,模拟出真实的购物感受。如图4-16、4-17、4-18所示为跟踪视点的实现。以下为实现购物车跟踪视点的代码:DEF shoukuan Viewpoint position-78 -44.29 -120orientation0 1 0 -1.571description shoukua

60、nfieldOfView1jump FALSE DEF car TouchSensor DEF Box01-TIMER TimeSensor loop FALSE cycleInterval 3.333 ,DEF Box01-POS-INTERP PositionInterpolator key 0, 0.03, 0.93, 0.96, 0.99, 1, keyValue -50 -88 -500 , -50 -88 -130 , ,ROUTE car.touchTimeTO Box01-TIMER.startTimeROUTE Box01-TIMER.fraction_changed TO

61、Box01-POS-INTERP.set_fractionROUTE Box01-POS-INTERP.value_changed TO Box01.set_translation 图4-16购物车跟踪视点实现的原始图 4-17购物车跟踪视点实现的过程图 图4-18购物车跟踪视点实现的最终效果图程序中第一条路由的作用是接触传感器car的touchTime事件域传递域值给时间传感器Box01-TIMER的startTime域;第二条路由是时间传感器Box01-TIMER的fraction_changed事件域传递域值给位置插补器Box01-POS-INTERP的set_fraction事件域;第三条路由的作用是位置插补器Box01-POS-INTERP的value_ch

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!