收藏 分销(赏)

虚拟现实在超市及餐厅中的控制.docx

上传人:pc****0 文档编号:8954767 上传时间:2025-03-09 格式:DOCX 页数:48 大小:1.29MB
下载 相关 举报
虚拟现实在超市及餐厅中的控制.docx_第1页
第1页 / 共48页
虚拟现实在超市及餐厅中的控制.docx_第2页
第2页 / 共48页
点击查看更多>>
资源描述
虚拟现实在超市及餐厅中的控制 学 校: 河北工业大学 系 部: 机械工程学院 专 业: 机械工程 年 级: 机研136 学生姓名: 赵占勇 学 号: 20133120402 指导教师: 高春艳 目录 目录 I 摘要 IV 关键词 IV Abstract V Key words V 前言 VI 第1章 虚拟现实技术 1 1.1 虚拟现实技术简介 1 1.1.1 虚拟现实技术的概念 1 1.1.2 虚拟现实技术的关键技术 1 1.2 VRML概述 2 1.2.1 VRML简介 2 1.2.2 VRML应用和展望 2 第2章 其它技术支持——3ds max与JavaScript 4 2.1 3ds max概述 4 2.1.1 3ds max简介 4 2.1.2 3ds max的特点 4 2.1.3 3ds max的应用领域 5 2.2 JavaScript概述 5 2.2.1 JavaScript简介 5 第3章 使用3ds max技术构建模型 7 3.1 3ds max构建模型的准则 7 3.2 3ds max构建模型的基本方法 7 3.2.1 基本体建模 7 3.2.2 二维线形建模 7 3.2.3 三维修改器建模 8 3.3 利用3D制作动画 9 第4章 使用VRML技术构建动画与交互功能 10 4.1 使用VRML构建动画与交互功能的基本语法 10 4.1.1 使用VRML构建动画的基本插补器类型 10 4.1.2 使用VRML构建交互功能的基本传感器类型 10 4.2 使用VRML构建动画 11 4.2.1 使用VRML构建马桶盖的开启 11 4.2.2 使用VRML构建压力锅的烟雾及开启 12 4.2.3 使用VRML构建天空 13 4.3 使用VRML构建交互功能 14 4.3.1 使用VRML构建冰柜门开启的交互功能 14 4.3.2 使用VRML构建超市收银的交互功能 15 4.3.3 使用VRML构建超市点击收获物品的交互功能 16 4.3.4 使用VRML构建超市大门伸缩开启的交互功能 17 4.3.5 使用VRML构建油烟机声音的交互功能 18 4.4 使用VRML构建视点、灯光 19 4.4.1 使用VRML构建固定视点 19 4.4.2 使用VRML构建跟随视点 20 第5章 使用JavaScript构建动态场景的交互 23 5.1 使用JavaScript构建动态场景交互功能的实现 23 5.1.1 利用 JavaScript创建微波炉旋转加热动画 24 5.1.2 利用JavaScript构建洗手池水龙头的的交互功能 26 5.1.3 利用JavaScript构建燃气灶开关和火焰大小的交互功能 27 5.1.4 利用JavaScript实现购物车收获物品和收银之间切换的交互功能 30 结论 32 总结与体会 33 谢辞 34 参考文献 35 附录一 翻译原文 36 附录二 翻译译文 42 虚拟现实在超市及餐厅中的控制 摘要 虚拟现实(Virtual Reality,简称VR),是一种基于可计算信息的沉浸式交互环境,具体地说,就是采用以计算机技术为核心的现代高科技生成逼真的视、听、触觉一体化的特定范围的虚拟环境,用户借助必要的设备以自然的方式与虚拟环境中的对象进行交互作用、相互影响,从而产生“沉浸”于等同真实环境的感受和体验。VR带来了人机交互的新概念、新内容、新方式和新方法,使得人机交互的内容更加丰富、形象,方式更加自然、和谐。虚拟现实近几年发展迅速,应用领域广,发展潜力大,涉及计算机图形学、数字图像处理技术、多媒体技术、网络技术、人工智能等等。它是利用计算机和虚拟现实硬件设备对真实世界的模拟,不仅能使人们在游览虚拟环境的过程中产生身临其境的感觉,并且还能够与虚拟场景进行交互,具备交互性、沉浸性、幻想性和多感知性等特征。本文主要探讨利用3ds max 、VRML与JavaScript编程技术构造虚拟现实场景实现虚拟技术在超市及餐厅中的应用控制,达到运用鼠标控制场景内的物品,向其发出指令使之发生相应的运动变化。例如:餐厅部分中微波了的加热旋转、燃气灶的火焰燃烧、洗菜池的流水调控等等;超市部分中的点击收获物品、收银功能实现等。 关键词:超市及餐厅控制,VRML,3ds max, JavaScript Virtual Reality in supermarkets and restaurants in the control Abstract Virtual 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 of 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 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 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 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 scene, 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 stove's flame burning, vegetables pool water regulation, etc.; supermarket section click on harvest article, cashier function realization. Key words: control of supermarkets and restaurants, VRML,3ds max, JavaScript 前言 跨入21世纪,人类已经迈入数字化时代,我国信息产业得到迅猛发展。特别是网络技术、多媒体技术、可视化技术及虚拟现实系统的不断更新和发展,使虚拟现实系统发展成为数字化多维信息空间技术支撑平台,并成为构建数字虚拟环境的最重要的关键技术之一。虚拟现实语言作为计算机的核心技术已被广泛应用于社会生活的各个领域,例如产品设计与性能评价、教育与娱乐、高难度和危险环境下的训练、医学、房地产等诸多领域,但在模拟现实生活方面目前的成果还相对匮乏。本系统的主要研究目地在于利用虚拟现实技术模拟出人们在现实生活几乎每天都能接触到的一些事物场景,使人们可以在一个完全虚拟的世界中体会到现实当中的日常生活,感觉上人们在虚拟生活中多了一个“second life”。对今后虚拟现实技术在日常生活方面的应用起到引言预测的研究作用。 虚拟场景是计算机通过数字通讯技术勾勒出的数字化场景。虚拟日常生活场景设计是将现实生活中经常接触到、使用到的日常生活场景虚拟化,使人们可以在虚拟的网络世界中感受到现实生活的踪影。实现现实生活中的超市和餐厅的基本陈设、工作流程等,对其中的核心部件进行交互控制,是用户可以轻松体验虚拟场景带来的真实生活。其中交互主要包括:餐厅部分:冰柜门开启、微波炉加热旋转、洗菜池流水调控、抽油烟机音效、燃气灶火焰燃烧、压力锅加热雾化效果等;超市部分:伸缩门开启、点击收获物品、收银结账等等功能。 基于VRML虚拟技术的超市及餐厅虚拟场景设计的实现改变了传统的真实场景模式,场景内可以通过鼠标操作,方便而快速地让用户感受到虚拟场景中各种部件的交互使用,创造一个真实的室内场景空间,若再加入一些外部设备,可以使用户产生沉浸感,仿佛自己真的在操控各种物体一样。 第1章 虚拟现实技术 1.1 虚拟现实技术简介 1.1.1 虚拟现实技术的概念 虚拟现实是近年来出现的高新技术,也称人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。 VRML是一项综合集成技术[1],涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,它用计算机生成逼真的三维视、听、嗅觉等感觉,使人作为参与者通过适当装置,自然地对虚拟世界进行体验和交互作用。该技术集成了计算机图形(CG)技术、人工智能、传感技术、网络并行处理等技术的最新发展成果,是一种由计算机技术辅助生成的高技术模拟系统。 概括地说,虚拟现实是人们通过计算机对复杂数据进行可视化操作与交互的一种全新方式,与传统的人机界面以及流行的视窗操作相比,虚拟现实在技术思想上有了质的飞跃。 虚拟现实中的“现实”是泛指在物理意义上或功能意义上存在于世界上的任何事物或环境,它可以是实际上可实现的,也可以是实际上难以实现的或根本无法实现的。而“虚拟”是指用计算机生成的意思。因此,虚拟现实是指用计算机生成的一种特殊环境,人可以通过使用各种特殊装置将自己“投射”到这个环境中,并操作、控制环境,实现特殊的目的,即人是这种环境的主宰[2]。 1.1.2 虚拟现实技术的关键技术 实物虚化、虚物实化和高性能的计算处理技术是VRML技术的三个主要方面。实物虚化是将现实世界的多维信息映射到计算机的数字空间生成相应的虚拟世界,为高性能的计算处理提供必要的信息数据。虚物实化通过各种计算和仿真技术使计算机生成的虚拟世界中的事物所产生的各种刺激以尽可能自然的方式反馈给用户。 1.2 VRML概述 1.2.1 VRML简介 VRML是英文Virtuual Reality Modeling Language ——虚拟现实造型语言的缩写。其被广泛应用于Internet上创建充满动感的三维虚拟空间。它是一个可参与、可进入、可交互的三维立体世界,给人们带来沉浸感、想象力以及动态交互感知的效果,从而产生置身于真实环境中的幻想感、身临其境的感受。 虚拟现实建模语言VRML涉及有关的基本概念和名词是编写VRML的基础,基本术语包括各种节点、域值、事件、路由、原型、场景及脚本等[3]。 1.2.2 VRML应用和展望 虚拟现实建模语言VRML设计,源于虚拟现实技术,是20世纪末发展起来的设计众多学科的高新技术。它集计算机、仿真、微电子、传感与测量技术于一体的高新技术的融合。而虚拟现实建模语言VRML,正式利用虚拟现实技术,在计算机中创建一种虚拟环境,通过视觉、听觉、触觉、味觉、嗅觉以及生理反应等感知器,使用户产生一种与现实生活相同的感受,有身临其境的感觉甚至生理感觉。可实现用户与虚拟现实环境直接惊醒交互。 虚拟现实建模语言(VRML)涉及计算机网络、多媒体及人工智能三大领域,以及自然科学、社会科学和哲学等学科领域。具体来讲,虚拟现实环境一般涉及计算机图形学、图像处理、模式识别、传感器、语音处理、网络技术、并行处理、人工智能等高新技术,还涉及天文、地理、数学、物理、化学、美学、医学、军事、生理和心理等领域[4]。 计算机硬件技术、网络技术及多媒体技术的融合与高速发展使得虚拟显示技术获得长足的发展,是虚拟现实技术能在Internet上得以实现和发展。目前网站使用的均为二维图像与动画网页,而在网站上采用虚拟现实建模语言(VRML),则可以设计出虚拟现实三维立体网页场景和立体景物。利用虚拟显示技术可以制造一个逼真的“虚拟人”, 为医学实习、治疗、手术及科研做出贡献,也可应用于军事领域而设计一个“模拟战场”来进行大规模的高科技军事演习,既可以节省大量费用,又使部队得到了锻炼。在航空航天发射中,也可以制造一个“模拟航天器”,模拟整个航天器生产、发射、运行和回收的全过程。此外,还可以应用于工业、农业、商业、数学、娱乐和科研等方面,其应用前景非常广阔。总之,VRML是21世纪融计算机网络、多媒体及人工智能为一体的最为优秀的开发工具和手段。 第2章 其它技术支持——3ds max与JavaScript 2.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 Studio Max + Windows NT组合的出现一下子降低了CG制作的门槛,首选开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如X战警II,最后的武士等。 在应用范围方面,广泛应用于广告、影视、工业设计、建筑设计、多媒体制作、游戏、辅助教学以及工程可视化等领域。拥有强大功能的3DS MAX被广泛地应用于电视及娱乐业中,比如片头动画和视频游戏的制作,深深扎根于玩家心中的劳拉角色形象就是3DS MAX的杰作。在影视特效方面也有一定的应用。而在国内发展的相对比较成熟的建筑效果图和建筑动画制作中,3DS MAX的使用率更是占据了绝对的优势。根据不同行业的应用特点对3DS MAX的掌握程度也有不同的要求,建筑方面的应用相对来说要局限性大一些,它只要求单帧的渲染效果和环境效果,只涉及到比较简单的动画;片头动画和视频游戏应用中动画占的比例很大,特别是视频游戏对角色动画的要求要高一些;影视特效方面的应用则把3DS MAX的功能发挥到了极至。 2.1.2 3ds max的特点 1、功能强大,扩展性好。 建模功能强大,在角色动画方面具备很强的优势,另外丰富的插件也是其一大亮点。 2、操作简单,容易上手。 与强大的功能相比,3ds max可以说是最容易上手的3D软件。 3、和其它相关软件配合流畅。 4、做出来的效果非常的逼真。 2.1.3 3ds max的应用领域 1、游戏动画 主要客户有EA、Epic、SEGA等,大量应用于游戏的场景、角色建模和游戏动画制作。 2、建筑动画 北京申奥宣传片等。 3、室内设计 在3ds max等软件中,可以制作出3D模型,可用于室内设计、例如沙发模型、客厅模型、餐厅模型、卧室模型等等。 4、影视动画 《阿凡达》《诸神之战》等好莱坞电影都引进了先进的3D技术。 2.2 JavaScript概述 2.2.1 JavaScript简介 JavaScript是NetScape公司为Navigator浏览器开发的,是写在HTML文件中的一种脚本语言,能实现网页内容的交互显示[5]。当用户在客户端显示该网页时,浏览器就会执行JavaScript程序,用户通过交互式的操作来变换网页的内容,以实现HTML语言所不能实现的效果。 JavaScript是一种描述性的脚本语言,将JavaScript写入到Web页面当中,能让你的网页更加生动活泼,也是目前网页中设计中最容易学又最方便的语言。你可以利用JavaScript轻易的做出亲切的欢迎讯息、漂亮的数字钟、有广告效果的跑马灯及简易的选举,还可以显示浏览器停留的时间。让这些特殊效果提高网页的可观性[6]。 在VRML中,Script节点包含一个脚本程序。这个程序是用JavaScript或Java写的,Script节点脚本可以接收事件,处理事件中的信息,还可以产生基于处理结果的输出事件。Script节点不创建任何造型,所以它在虚拟世界中也是看不到的。Script节点可以作为子节点包含在任何组节点中,但它不依靠于所使用的系统,而且与子节点所作的选择无关。Script节点一般放在VRML文件的最外层组。 利用程序脚本和Script节点,可以差生复杂动作。通常程序脚本动作包括已计算好的动画运动路径的输出。Script节点可以看作是一个节点的外壳:它拥有field域、eventIn事件、eventOut事件,然而可以通过程序脚本来赋予脚本节点的动作。可以这样理解Script节点:通过接受eventIn事件调用了相应的处理过程函数,经过程函数处理后得出的数据作为eventOut出事件发送出去,其中eventIn事件的值可以作为过程函数的因变量的值,如果需要则用field域定义某个中间变量。 无论Script节点是直接包含程序脚本,还是将其放在分立的文件中,Script节点的程序脚本定义了此节点的动作。这些动作可以包含由接口eventIn接收的输入的响应,计算新的结果,将这些结果存入节点的接口域,通过节点的接口eventOut发出新值。 JavaScript继承了Java语言的面向对象、跨平台等多想特点,有人认为它是为了快速、简单地编程而出现的微型Java语言。鉴于JavaScript在网页设计中成功应用并成为主导编程语言,VRML也将JavaScript作为内嵌编程语言的候选者之一,大部分VRML浏览器都支持JavaScript编写的脚本程序。虽然JavaScript对于大多数应用来说已经足够,但VRML的倡导者之一SGI公司还是基于语言开发了专门针对VRML设计的Vrmlscript语言。Vrmlscript可以说是JavaScript的一个子集,它使用了JavaScript的基本语法,增加了一些适用于VRML的JavaScript对象。如果Script节点内直接包含使用这两种语言之一编写的程序脚本,为了使浏览器能够区分开,必须在url域的字符串开头注明“VrmlScript:”还是“JavaScript:”。JavaScript对VRML场景的访问并不是一定要通过Script节点,如果VRML场景与HTML页面的其它对象相结合,比如使用了JavaScript对象,就可以使用直接访问的方式[7]。 第3章 使用3ds max技术构建模型 3.1 3ds max构建模型的准则 一个虚拟现实场景在计算机上演示流畅与否,与场景中的模型个数、模型面数、模型贴图这三个方面的数据量息息相关,只有在前期建模时处理好这三个方面的数据量,才不会导致后期演示时出现卡、顿等现象。 3.2 3ds max构建模型的基本方法 3.2.1 基本体建模 3ds max中提供了非常容易使用的【标准基本体】及【标准几何体】建模工具,只需拖动鼠标,即可创建一个几何体。这些基本体靠参数来改变形态的,用这些基本体可以制作一些简单的造型。 ·沙发建模、房屋建模 图3-1 沙发的效果图 图3-2 房屋的效果图 3.2.2 二维线形建模 二维线形在建模中起着非常重要的作用,通常我们建立的三维模型大都是先创建二维线形,然后添加相应的修改命令来完成的。二维线形也可以直接在建模中使用,它提供了【顶点】、【线段】、【样条线】等修改级别,用二维线形绘制复杂的造型,必须给它添加适当的编辑修改命令,通过这些命令使二维线形生成三维物体,一步步绘制出复杂的结构造型。常见的修改命令如【挤出】、【车削】、【倒角】、【倒角剖面】、【放样】等。 ·洗手池建模、油烟机建模 图3-3 洗菜池的效果图 图3-4油烟机的效果图 3.2.3 三维修改器建模 在3ds max的修改工具中有大量的三维修改命令,通过使用这些三维修改命令可以对三维对象进行一些复杂的变形和编辑,可以快捷地创建一些精度要求很高的复杂三维造型。常见的修改命令如【FFD】等。 ·购物车建模、压力锅建模 图3-7 购物车的效果图 图3-8 压力锅的效果图 ·收款机建模 图3-9 收款机的效果图 3.3 利用3D制作动画 在3ds max中可以制作场景动画,导入进VRML里做必要的处理可以形成物体交互的动画,方便快捷的模拟出现实生活的场景。 创建动画的方法: (1)单击“自动创建关键点”按钮,开启动画功能。 (2)激活所需视图上需要变化的物体,改变其相对位置,确定好方位后点击打点按钮,定下关键帧。依此类推。 (3)激活透视图,观察最终动画并加以修改。 (4)如图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节点的时钟计时时,可以使这些节点发生相应的变化[8]。若要使一个坐标系平移、旋转和按比例缩放的话,可以将Timesensor节点时间路由至PositionInterpolator和OrientationInerpolator节点。这些节点中每一个产生新的位置和旋转值,并通过他们的eventOut事件传送这些值。按顺序将这些值路由到Transform节点,就可以使节点的坐标系随动画过程的发展而发生平移、旋转和按比例缩放。 根据其所插值的类型而将插补器节点分为几种[9]:PositionInterpolator位置插补器(用于造型位置的变化,和时间传感器结合一起可以随时间改变对象的位置,从而创建对象移动的效果。同时,这个节点还可以用来控制对象的缩放,实现对象大小和形状的变化)。OrientationInterpolator方向插补器(用于对象的朝向变化,也就是随着时间的变化,对象绕某个轴,逐渐旋转不同的角度,体现出对象的方位的动态变化。)ColorInterpolator颜色插补器(描述颜色随时间的变化,从而使得造型的颜色呈现一种灵活、生动的变化效果)。ScalarInterpolator标量插补器(对某些标量数值的域进行插补的,一般用于只有单一的数值表示的域,比如改变强度,可以调节光照,雾的浓度。材质的透明度等等)。NormalInterpolator法向插补器(能够随时间改变vector的三维向量域值)。CoordinateInterpolator坐标插补器(对空间坐标的数值进行插补,但是同位置插补器的情况不同,坐标插补器往往不是用在对造型对象的位置坐标上,而是用在构成某类对象的空间坐标上。) 4.1.2 使用VRML构建交互功能的基本传感器类型 在虚拟场景中设置了一些具有检测、感知作用的节点,借助这些节点的使用,浏览者和虚拟对象能够实现更进一步的交互[10]。 Touchsensor是一种用来检测观察者的接触和将事件输出的传感器。这些输出描述了在何时、何地观察者接触到了可感知的造型。CylinderSensor,PlaneSensor和SphereSensor节点也可用来检测何时观察者接触到一个可感知的造型[11],并且提供了用来改变造型位置和方向的输出。检测器可以分为两大类,一类是接触型的传感器,另一类是感知性的检测器。 检测动作的检测器是接触型检测器[12],节点有:TouchSensor接触传感器(用于感知用户鼠标触发的动作)、PlaneSensor平面传感器(感知用户在XOY平面上鼠标拖拽动作)、SphereSensor球面传感器(用于感知用户绕中心点拖拽旋转的动作)及CylinderSensor圆柱传感器(用于感知用户绕中心轴拖拽旋转的动作)。 检测用户和对象接近程度的检测器是感知检测器,节点有: VisibilitySensor可见性传感器(从浏览者所在的方位,感知一个空间长方体区域,在当前场景中是否可以被看见,据此输出事件触发动画效果),ProximitySensor邻近传感器 (用于从浏览者视点所在的方位,感知用户进入、退出设定的空间长方体区域的动作), Collision碰撞感知节点(用于从浏览者所在的方位,感知用户与该组中任何子节点造型发生碰撞动作)。 4.2 使用VRML构建动画 4.2.1 使用VRML构建马桶盖的开启 在现实生活中,人们可以通过点击按钮来冲洗马桶,为此,在本次设计中通过使用OrientationInterpolator来实现这一功能,并配有冲洗马桶的声音。如图4-1、4-2所示功能实现。 以下所示为实现马桶盖关闭的代码: DEF gaizi Transform{ } DEF clock1 TimeSensor {cycleInterval 1 loop FALSE } DEF a1 OrientationInterpolator { key [0.0 0.1 ……0.9 1 ] keyValue [0 1 1 3.14……0 -1 0 3.14]} DEF s TouchSensor {} Sound {source DEF zb AudioClip {url "matong.mp3"}} ROUTE s.touchTime TO zb.startTime ROUTE clock1.fraction_changed TO a1.set_fraction ROUTE a1.value_changed TO gaizi.set_rotation 图4-1马桶盖关闭动画的原始图 图4-2马桶盖关闭动画的最终效果图 在这个程序中,第一条路由的作用是把接触传感器s的touchTime事件域传递域值给声音AudioClip zb的startTime域,开启声音;第二条路由的作用是时间传感器 clock1的fraction_changed事件域传递域值给方位插补器OrientationInterpolator a1的set_fraction域;最后一条路由是方位插补器OrientationInterpolator a1的value_changed事件域传递域值给Transform节点gaizi的set_rotation域,完成动马桶盖关闭动画的全过程。 4.2.2 使用VRML构建压力锅的烟雾及开启 在显示生活中压力锅工作中会有烟雾产生,通过VRML和cosmo worlds创建烟雾动画和锅的开启,还原真实场景。如图4-3、4-4所示功能实现。 以下所示为实现烟雾动画代码: DEF _12 TimeSensor {} DEF steam-AniTrigger_13 Script { eventIn SFTime triggerIn eventOut SFTime startTime eventOut SFBool firstTime url "javascript:function triggerIn(value, time) { startTime = value; firstTime = FALSE; }} ROUTE steam-AniTrigger_13.firstTime TO _12.set_enabled ROUTE _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 使用VRML构建天空 在虚拟现实中搭建外环境,模仿真实天空,增加场景的真实感。如图4-5所示为天空效果图。 以下所示为实现真实感天空的代码: DEF SkyInterp ScalarInterpolator { key [ 0, 1 ] keyValue [ 0, 1 ]} textureTransform DEF _34 TextureTransform { } DEF SkyTimer TimeSensor {} DEF SkyMove Script { eventIn SFFloat floatIN eventOut SFVec2f coordsOUT url "javascript: function floatIN (value, timestamp){ coordsOUT[0] = value; } }] ROUTE SkyMove.coordsOUT TO _34.set_translation ROUTE SkyTimer.fraction_changed TO SkyInterp.set_fraction ROUTE SkyInterp.value_changed TO SkyMove.floatIN } 图4-5真实感天空实现的效果图 程序中第一条路由的作用是脚本SkyMove的coordsOUT事件域传递域值给_34的set_translation域;第二条路由作用是时间传感器SkyTimer的fraction_changed事件域传递域值给标量插补器SkyInterp的set_fraction域;第三条路由是标量插补器SkyInterp的value_changed事件域传递域值给脚本SkyMove的floatIN域,实现云飘动的动画。 4.3 使用VRML构建交互功能 4.3.1 使用VRML构建冰柜门开启的交互功能 “虚拟现实在超市及餐厅中的应用”为用户提供了场景中物体的一些基本的交互功能,用户可以通过操作鼠标对场景中的物体进行实时交互控制。当程序接收到事件响应后,通过一系列传感器控制物体发生运动。如图4-6、4-7所示为冰柜门开启效果图。 以下所示为实现冰柜门开启的交互功能的代码: DEF men1 Transform { } DEF s1_sensor PlaneSensor { maxPosition 30 0 } ROUTE s1_sensor.translation_changed TO men1.set_translation 图4-6冰柜门开启的交互功能的原始图 图4-7冰柜门开启的交互功能的最终效果图 在该程序中路由的作用是平面传感器s1_sensor的translation_changed事件域传递域值给men1的set_translation域,完成鼠标控制冰柜门开启的动画。 4.3.2 使用VRML构建超市收银的交互功能 利用VRML里的多种传感器还原现实生活中中超市购物收银场景,同时配有声音,使人们真正感受到虚拟生活带来的沉浸感、真实感。如图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.06……0.96, 1, ] keyValue [0 0 0, 0.5283 1.394 -0.9639,…
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服