ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:39.46KB ,
资源ID:22974503      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22974503.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(虚拟现实技术VRML篇Word格式文档下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

虚拟现实技术VRML篇Word格式文档下载.docx

1、几乎所有生产厂商,无论是 CAD建模、动画、VR还是VRML他们的结构核心都有场景图。境界中的对象及其属性用节点(Node)描述,节点按照一定规则构成场景图 (Scene Graph) ,也就是说,场景图是境界的内部表示。场景图中的第一类节点 用于从视觉和听觉角度表现对象, 它们按照层次体系组织起来, 反映了境界的空 间结构。另一类节点参与事件产生和路由机制,形成路由图 (Route Graph) ,确 定境界随时间的推移如何动态变化。VRML文件的解释、执行和呈现通过浏览器实现,这与利用浏览器显示 HTML文件的机制完全相同。 浏览器把场景图中的形态和声音呈现给用户, 这种视听觉 呈现即所谓

2、的虚拟世界 (境界)。用户通过浏览器获得的视听觉效果如同从某个特 定方位体验到的,境界中的这种位置和朝向称为取景器 (Viewer) 。3.VRML的 应用VRML在电子商务、教育、工程技术、建筑、娱乐、艺术等领域有广泛的应 用。例如在教育上,VRM不仅仅是HTML功能更强的替代品,其潜在意义在于突 破上述基于WW的教学模型建立更自然、更真实的虚拟教育环境。在这种环境中 学生可以以浏览探索的方式汲取知识, 如进入虚拟太空学习天文知识, 利用虚拟 地球学习地理知识, 穿过历史长廊与历史人物交流, 进入分子世界游历化学殿堂 等等,这些曾经是梦想中的学习方式都可以逐步实现。在这个虚拟教育世界中, 甚

3、至可以有利用VRML制作的动画人物扮演教师,其面部表情和形体动作利用动 作跟踪系统捕捉下来, 这样得到的讲课节目将是三维的。 如果把这种方式扩大到 教学双方,则可实现具有实时交互性的虚拟教学教师控制的虚拟教师和学生 控制的虚拟学生就可以在一个虚拟教室中相互交流。4.VRML的工作组及其研究目标为了推动VRMLS术的发展,VRM协会组织了很多工作组,每个工作组都是 自愿组织、自我约束、并经VRM协会认可的技术委员会,负责某个与VRM!有关 的专题技术的研究和实现工作。人性动画工作组(Humanoid Animation WG)利用VRM!表现人类行为特性。 色彩保真工作组 (Color Fide

4、lity WG) 确保采用任何平台的观众所看到的效 果都和创作者的原始作品一样 , 颜色应相当一致。元形式工作组(Meta Forms WG)针对利用形式文法生成的作品,提出一般性 的方法论和一般性规范 ,使之能够映射为某种特定形式。首要目标是能够表示 数字生命格式 ( Digital Life-Forms) 结构和增长。面向对象扩展工作组 (Object-Oriented Extensions WG) 探讨和推动对 VRML 进行面向对象扩展的方法。数据库工作组(Database WG推进基于VRM商业应用的创建,利用数据库维 护VRML内容的持久性、升级能力和安全传输能力。外部创作接口工作

5、组(External Authori ng In terface WG在 VRMLS 界和外 部环境之间建立标准接口。界面组件工作组(Widgets WG为开发者和用户提供一套基础性的、可自由使 用的标准用户界面组件集,并提供支持基本组件集和所有 VRMLS件的理论框架。二进制压缩格式工作组 (Compressed Binary Format WG) 探讨并开发 VRML 文件的二进制编码方法, 重点是研究为了快速传送目的而尽量缩小文件尺寸, 同 时为了快速解码目的而尽量简化文件结构。通用媒体库工作组(Universal Media Libraries WG) 为了提高 VRMLS界的 真实感

6、,同时减少网络的下载量,而定义一种由驻留本地的媒体元件 (纹理、声 音和VRM对象)组成的小型跨平台媒体库。同时定义一种统一机制,通过这种机 制,VRM内容创作者可以在自己的境界中使用这些媒体元件。活动境界工作组(Living Worlds WG为多用户(包括多个开发者)应用的产生 和进化定义概念框架,并确定一组界面。键盘输入工作组 (Keyboard Input WG) 为了使内容创作者能够在自己的境界 中访问键盘输入,定义一个或多个扩充节点。一致性工作组(Conformance WG)为与一致性测试有关的问题提供一个讨论 场所,特别地,本组将辨别 VRMLS现发生分歧的地方以及相应的动作序

7、列。生物圈工作组 (Biota WG) 为生命系统 (Living System) 的研究和学习建立、 配备数字式工具和环境。分布式交互仿真工作组 (Distributed Interactive Simulation WG) 为建立有多广播能力 (Multicast-Capable) 的大规模虚拟环境 (Large-Scale Virtual Environments, LSVEs)确立初始网络约定。VRML脚本工作组(VRMLScript WG向 VRM监查组(VRMLReview Board,VRB) 提供有关 Java 和 JavaScript 的问题列表、修改建议和评论。自然语言处理

8、和动画工作组 (NLP & Animations WG) 为了使用户能使用自然 语言和VRM动画形象进行交流,从而使交互更自然,增强用户和动画形象之间的 信息流动, 研究如何使用“问题 / 回答”、“命令/ 响应”式的对话以及基于操作 系统命令和字符控制的自然语言。VRML-DHTM集成工作组(VRML-DHTML Integration WG)为 VRML和 DHTM在 文档对象模型、组件(Component)接口和绘制等三个层次的紧密集成开发一种概 念模型。6. 研究现状VRML9发布后,互联网上的3D图形几乎都使用了 VRML由于技术的局限性, 如带宽不够,需要下栽插件浏览,文件量大,真

9、实感、交互性需要进一步加强等 原因,最近一二年,许多制作 Web3D图形的软件公司的产品,并没有完全遵循 VRML9标准,而是使用了专用的文件格式和浏览器插件,开发了比较实用的 VR软件。这些软件有些比VRM有了进步,在渲染速度、图像质量、造型技术、交 互性以及数据的压缩与优化上, 都有胜过VRMI之处。比如,Cult3D、Viewpoint、 GL4Java Pulse3D、Flatland、Flash、JPEG200C等。CULT3D VIEWPOINT 360度环视等技术正被应用。以Blaxxun和ParallelGraphics 公司为代表,它们都有各自的VR浏览器插 件,并各自开发基

10、于VRMLS准的扩展节点功能(X3D,使3D的效果,交互性 能更加完美;支持 MPEGMov Avi等视频文件,Rm等流媒体文件,Wav Midi、 Mp3 Aiff等多种音频文件,Flash动画文件,多种材质效果,支持 Nurbs曲线, 粒子效果,雾化效果;支持多人的交互环境, VR眼镜等硬件设备;在娱乐、电子商务等领域都有成功的应用,并各自为适应 X3D的发展,以X3D为核心,有Blaxxun3D等相关产品。在虚拟场景,尤其是大场景的应用方面,以 VRML标准为核心的技术具有独特的优势。二、初识 VRML(1)VRM的文件结构1.文件头VRML2.0(VRML9;开头如下:# VRML V

11、2.0 utf8大小写敏感的,utf8是指一种纯文本编码方式2.场景图( Scene Graph)由描述“对象及其属性”的节点组成,节点是 VRMLS基本单元,场景图的第一类节点用于从视觉和听觉角度表现对象,它们是按照层次体系结构组织的; 另一类节点,则参与事件产生和路由机制。3.原型( Prototype )用户可以通过原型扩充 VRM的节点类型集。原型的定义可以包含在使用该 原型的文件中,也可以在外部定义。4.事件路由( Route)有些VRML节点能通过产生事件响应环境变化或用户交互。事件一旦产生, 就按时间顺序向路由目标节点发送。 目标节点接收后进行相应处理, 可改变节点 状态,产生其

12、他事件,或者修改场景图的结构。利用脚本节点 Script ,作者可以 Java 或 JavaScript 语言自定义任意事件 处理。(二) VRKL节点和数据类型虚拟场景由对象构成,对象及其属性用节点(Node描述,节点是构成VRML 文件的基本单元。VRML9定义了 54种基本节点类型(内部节点类型),用户也可以通过原型 机制定义自己的节点类型。节点由域和事件组成:1.域( field )描述了节点的当前状态。 其中外露域( exposedField )是域和事件的统一体, 它既作为域描述节点,又隐含着形如“ set_ 域名”的入事件和“域名 _changed” 的出事件。2.事件( eve

13、nt )分为入事件和出事件, 入事件将导致节点状态的改变; 出事件向外报告自身 状态的变化。(三) VRM浏览器Blaxxun Contact 3DCosmo PlayerVisvape 等Microsoft VRML2.0 Viewer(四) 编写VRM境界1.制作第一个虚拟境界#VRML V2.0 utf8Group children Shape geometry Box 将它保存为 SimpleWorld.wrl 文件,则可以用浏览器看到它。2.定义外观第二场景再定义立方体的外观,即改变 Shape 节点的 appearance 域(外观) , appearance 域是一个节点,此节点

14、的 material 域定义为一个 Material 节点:则Shape节点变成了: Shape appearance Appearance material Material geometry Box 修改它的 diffuseColor 域(漫射色),应该是 1 0 0 , 3 个数字分别表示红色、绿色和蓝色,取值范围是 0到 1:material Material diffuseColor 1 0 0 这样,生成了第二个场景文件:Group children Shape appearance Appearance material Material diffuseColor 1 0 0 g

15、eometry Box 3.定义变换第三个场景 若想移动这个红色的立方体,可以通过为它外套一个 Transform 节点来实 现:Transform translation 5 0 0 children Shape appearance Appearance material Material diffuseColor 1 0 0 geometry Box Transform 节点的 translation 5 0 0 表示 x 轴向上右移 5 个单位(米) 则第三个场景完整代码如下:Transform translation 5 0 0 children Shape appearance A

16、ppearance material Material diffuseColor 1 0 0 geometry Box 4.复制节点第四个场景 复制节点,并将各自的几何形状定义为方块、球体和圆椎 Group Shape . . . geometry Box Transform translation 0 0 0 children Shape . . . geometry Sphere translation -5 0 0 children Shape . . . geometry Cone # end of Group children 为了以后引用方便,分别给这 3 个 Transform

17、节点指定一个名称: DEF box Transform . . . DEF Sphere Transform . . . DEF cone Transform . . . 则第四个场景的完整代码是:# VRML V2.0 utf8 Group children DEF box Transform translation 5 0 0Shape appearance Appearance material Material diffuseColor 1 0 0 DEF sphere Transform translation 0 0 0appearance Appearance material

18、Material diffuseColor 0 1 0 geometry Sphere DEF cone Transform translation -5 0 0appearance Appearance material Material diffuseColor 0 0 1 geometry Cone 将此文件保存为 FirstWorld.wrl ,用浏览器观看,可从多个方位浏览自己 的作品。(五)交互能力的加入1.传感器是交互能力的基础, 共 9 种。在场景中, 传感器节点一般是以其他节点的子 节点的身份存在的, 它的父节点称为可触发节点, 触发条件和时机由传感器节点 类型确定。接触传感

19、器(TouchSe nsor)是最常用的传感器,先了解一下开关节点 lightSwitch (组节点),并定义一个接触传感器作为它的子节点:DEF lightSwitch Group 各几何造型节点DEF touchSensor TouchSensor 传感器能引起某种变化,下面看场景变化。2.视点当你拖动鼠标或按动箭头键时(按照VRM术语,称为航行),虚拟境界就会 旋转或缩放, 这实际上是在调整你的视点位置或视角。 在虚拟场景的重要位置可 以定义视点节点 (ViewPoint ) ,它们是境界作者给用户推荐的上佳观赏方位, 在 CosmoPlayer浏览器中,用户就可以通过鼠标右键选择作者推

20、荐的各个视点。这 里我们定义两个视点节点:DEF viewl Viewpoi nt #“view1 ”是编程时引用的名字position 0 0 20 description View1 #“ View1 ”是浏览器上显示的名字DEF view2 Viewpoint position 5 0 20description view2目的是使用户可以通过触发开关节点来切换视点。 视点节点中的坐标表示视 点在场景中的位置, 坐标的单位是米, 视点的名称将会在浏览器菜单中提示出来 供用户选择。把上述视点说明加入helloworld2.wri 中(放在Group节点之前), 并把其中的方块节点修改成可触

21、发节点:DEF box Tranform Shape Box .DEF touchBox TouchSensor 定义触发节点把修改过的文件另存为“ touchme.wrl ”。3.事件传递下面把触发(用鼠标箭头按动方块)和场景变化(视点切换)这两件事情联 系起来,在场景图中,除节点构成的层次体系外,还有一个“事件体系”,事件 体系由相互通讯的节点组成。能够接收事件的节点都应具有事件入口 (eventIn ),如果它要接收多种类型 的事件(称为入事件) ,它就应该具有多个事件入口,也就是说,事件入口象节 点的域一样是有类型的。同样,发送事件的节点应有事件出口( eventOut) ,事 件出口

22、也是有类型的。 例如 ViewPoint 节点就有一个事件入口 set_bind, 当向此 事件送入一个值“ TRUE (即所谓的入事件)时,该viewpoint节点成为当前视点。又如,接触检测器 TouchSensor 有一个事件出口 isActive, 当受到用户触发 后它就从此出口送出一个“ true (即所谓的出事件),在下一个事件发送之前, 此事件一直保存在事件出口中(作为记录) 。事件出口和事件入口通过路径相连,这就是 VRM文件中除节点以外的另一 基本组成部分:ROUTE语句。ROUT语句把事件出口和事件入口联系在一起,从 而构成事件体系。在这里,我们是把接触检测器 touchB

23、ox 的事件出口 isActive 连接到视点节点 view2 的事件入口 set_bind:ROUTE touchBox.isActive TO view2.set_bind现在我们得到的VRM文件是:DEF view1 Viewpoint 视点position 0 0 20view1appearance Appearance material Material diffuseColor 1 0 0 DEF touchBox TouchSensor 触感appearance Appearance material Material diffuseColor 0 1 0 appearance

24、Appearance material Material diffuseColor 0 0 1 #end of Group childrenROUTE touchBox.isActive TO view2.set_bind 传递把这个文件调入浏览器, 然后把鼠标指向方块并按下左钮 (先别松开!),可 以看到视点已经变为 view2, 内部的机制我们已经很清楚:左钮按下时方块节点 的接触检测器被触发,接着接触检测器从事件出口 isActive 送出一个事件“TRUE,这个事件通过路由进入视点节点 view2的事件入口 set_bind,view2收到“TRUE后成为当前视点,所以在我们眼前场景发

25、生了变化。 一当松开鼠标左键, 又回到原来的视点, 称为视点回跳。 因为松开鼠标左键后, 接触传感器向view2发送了 “FALSE事件,这样view2的当前地位被解除。若 不想回跳,则要自己来定义。4.利用脚本编写自定义行为在VRM中,利用Script节点(脚本节点)定义用户自定义行为,所谓定义 即用脚本描述语言(Scripting Language )编写脚本的过程。VRML97支持的脚 本描述语言目前有两种:Java和EMCAScript(这是JavaScript标准化后的名称), 关于这两种语言本身,请参考相应参考书, VRML9标准中定义了它们和VRM的接口方法。应提请注意的是: VRML是基于节点的语言,所以脚本也是封装在Script 这个特殊节点中的。这里我们不过多讨论脚本描述语言的细节,主要讨 论把脚本集成到VRM文件中的方法。上面我们曾把接触检测器 touchBox 和视点 view2 直接通过路径连接起来, 现在要定义我们指定的行为, 就需要在二者之间插入一个脚本节点, 也就是让路 径绕个弯:ROUTE touchBox.isActive TO touchScript.touchBoxIsActiveROUTE touchScript.bindView2 TO view2.set_bind其中的脚本节点 touchScript 有一个事

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

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