虚拟现实技术第4章要点_第1页
虚拟现实技术第4章要点_第2页
虚拟现实技术第4章要点_第3页
虚拟现实技术第4章要点_第4页
虚拟现实技术第4章要点_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、虚拟现实技术,第4章 虚拟现实建模语言VRML,4.1VRML语言概述 4.2VRML的语法基础 4.3VRML的空间造型 4.4VRML的场景效果 4.5VRML的动态交互,4.1VRML语言概述,VRML(Virtual Reality Modeling Language,虚拟现实建模语言)是一种用于创建三维造型和渲染的图形描述语言。,4.1.1 VRML的发展历程 4.1.2 VRML的特点 4.1.3 VRML编辑器 4.1.4 VRML浏览器,4.1VRML语言概述,4.1.1 VRML的发展历程,1994年,Mark Pesce和Tony Parisi创建了可用来浏览Interne

2、t上三维画面的浏览器原型,称为Labyrinth(迷宫),首次提出了VRML一词。 1994年,由SGI公司的工程师Gavin Bell组织制订了VRML 1.0的规范草案,并于同年10月在芝加哥召开的第二届万维网国际会议上公布。 VRML 2.0是以SGI公司的Moving Worlds提案为基础的,节点类型被扩展为54种,支持的对象也已包括动态和静态两大类。 VRML的国际标准草案于于1998年1月正式获得ISO的认定和发布,通常被称为VRML 97。 1998年,VRML组织更名为Web3D组织,并制订了一个新的标准X3D(Extensible 3D)。,4.1VRML语言概述,4.1.

3、2 VRML的特点,基于Internet共享的虚拟世界 较低的配置需求 真正的动态交互 适用于网络现状的技术 开放式的标准,4.1VRML语言概述,4.1.3 VRML编辑器,编辑VRML源程序代码,可以使用几乎任何一种文本编辑器。在此推荐一个功能强大并且使用便捷的VRML编辑器VrmlPad。 VrmlPad的安装与运行:VrmlPad的试用版可以从VRML的资源站点下载安装即可。 VrmlPad主要功能包括文件管理、文本编辑、浏览等。,4.1VRML语言概述,4.1.4 VRML浏览器,浏览VRML虚拟空间,需要使用浏览器插件,常用的有: Cosmo Player VRML浏览器 Micr

4、osoft VRML 2.0浏览器 其它浏览器,如SVR(兼容VRML97),Community Place,Liquid Reality等。,显示在Cosmo Player VRML浏览器中的三维虚拟会议大厅,4.2 VRML的语法基础,4.2.1 VRML的组成要素 4.2.2 VRML的文件结构 4.2.3 VRML的空间计量,4.2 VRML的语法基础,4.2.1 VRML的组成要素,1、节点(Node)和域(Field) 节点是VRML文件中最基本也是最核心的组成部分。单个节点可描述造型、颜色、光照、视点、传感器等。 VRML虚拟世界的对象往往是由一组具有一定层次结构关系的节点来构造

5、。,4.2 VRML的语法基础,4.2.1 VRML的组成要素,1、节点(Node)和域(Field) 典型节点语法定义如下:,4.2 VRML的语法基础,4.2.1 VRML的组成要素,2、事件(Event)和路由(Route) 事件的接口类型有事件入口和事件出口两种: 事件入口(eventIn,也称入事件)是节点的逻辑接收器,它负责监听和接收外界事件; 事件出口(eventOut,也称出事件)是节点的逻辑发送器,它负责向外界发送节点产生的事件。,4.2 VRML的语法基础,4.2.1 VRML的组成要素,2、事件(Event)和路由(Route) 事件出口和事件入口通过路径相连,这就是VR

6、ML文件中的另一个基本组成部分路由。 路由为事件的传播提供了传输通道,使事件在事件链中依次向前传递,每经过一个节点就改变该节点的一些域,从而引发VRML世界一系列的变化。,4.2 VRML的语法基础,4.2.1 VRML的组成要素,2、事件(Event)和路由(Route) 典型的事件路由定义如下: DEF SENSOR TouchSensor # 定义一个触摸传感器 DEF SOUND Sound # 定义一个声音对象 ROUTE SENSOR.touchTime TO SOUND.startTime # 建立事件的路由,4.2 VRML的语法基础,4.2.1 VRML的组成要素,3、脚本(

7、Script) Java、JavaScript行为脚本、插补器、C+函数、VRMLScript、LiveConnect、VRML外部制作界面等,都是用于生成动态、复杂及逼真的VRML场景的技术、语言和API(Application Programming Interface)。 Script节点可以看作是一个节点的外壳:它拥有域、eventIn事件、eventOut事件。其本身没有任何动作,但可以通过程序来赋予脚本节点动作。,4.2 VRML的语法基础,4.2.1 VRML的组成要素,4、原型(Prototype) 用户还可以通过原型构造机制定义新的节点类型,例如新的几何节点、新的造型、新的材

8、料和新的声音节点等。 新节点类型既可以在该原型定义的文件中引用(即内部原型,PROTO),也可以在外部文件中定义后在其它VRML文件中引用(即外部原型,EXTERNPROTO)。,4.2 VRML的语法基础,4.2.2 VRML的文件结构,典型的VRML文件结构如下: #VRML V2.0 utf8 # VRML文件头 节点名 # 创建VRML中各种类型的节点以构成造型 域名 域值 # 设置节点的各个域和域值 Scipt # 添加脚本节点,编写脚本程序 ROUTE TO # 建立出事件与入事件间的路由,4.2 VRML的语法基础,4.2.2 VRML的文件结构,1、文件头 头文件向浏览器表述了

9、如下含义: 本文件是一个VRML文件。 本文件遵循VRML规范的2.0版本。 本文件使用国际UTF-8字符集。,4.2 VRML的语法基础,4.2.2 VRML的文件结构,2、造型 物体的造型(又称场景图)由节点按一定的层次关系组成,它用于构造虚拟世界的主体各种静态和动态对象。 在造型层次模型中,上下层节点之间存在两种关系:包容关系和父子关系。 节点的包容关系是指后代节点作为祖先节点的一个属性域而存在。 在父子关系中,子节点并不直接出现在父节点的属性域中,它们集中在父节点的MFNode(多节点数据类型)子域内,依次排列。,4.2 VRML的语法基础,4.2.2 VRML的文件结构,3、路由 路

10、由不是节点,路由语句可以放置在节点内域可以出现的任何地方。 建议将所有ROUTE语句集中放置在文件的末尾,以构成一个系统的事件体系。 路由中引用的节点名称都应该在ROUTE语句之前被定义。,4.2 VRML的语法基础,4.2.2 VRML的文件结构,4、注释 注释信息以符号“#”开始,结束于该行的末尾,VRML不支持多行注释。 文件头中的“#”不代表注释含义。,4.2 VRML的语法基础,4.2.3 VRML的空间计量,1、VRML空间坐标系 VRML的立体空间采用三维坐标系。该坐标系的原点位于VRML浏览器的中心,X轴的正向水平向右,Y轴的正向垂直向上,Z轴的正向垂直向前,即指向浏览者,如图

11、所示。,4.2 VRML的语法基础,4.2.3 VRML的空间计量,2、VRML的计量单位 VRML描述长度的计量单位是VRML单位。它与现实世界或其它三维建模工具的计量单位都没有可比性。 VRML描述旋转等角度的计量单位是弧度。常用角度与弧度的对应关系如表所示。,4.2 VRML的语法基础,4.2.3 VRML的空间计量,3、VRML的色彩规范 VRML使用红绿蓝(RGB)颜色规范来描述造型、光线和背景等的色彩。 RGB颜色包含三个域值均在0.01.0之间的浮点数,它们分别对应红、绿、蓝三种颜色的取值。0.0值表示该颜色被关闭,1.0值表示该颜色完全打开。,4.3 VRML的空间造型,任何一

12、个VRML虚拟场景中的空间造型都必须使用Shape(形状)节点加以创建。 Shape节点的语法格式如下: Shape appearance NULL # SFNode geometry NULL # SFNode ,4.3 VRML的空间造型,4.3.1 基本造型 4.3.2 空间变换 4.3.3 文本造型 4.3.4 复杂造型,4.3 VRML的空间造型,4.3.1 基本造型,VRML的基本几何造型节点有4种: Box(立方体)节点 Cone(圆锥体)节点 Cylinder(圆柱体)节点 Sphere(球体)节点 例4-1 制作灯笼 参见教材P 57。,4.3 VRML的空间造型,4.3.2

13、 空间变换,利用Transform (变换)节点可以在VRML空间创建新的坐标系,可以随意translation(平移)、rotation(旋转)和scale(缩放)。 例4-2 制作茶几 参见教材P 58。,4.3 VRML的空间造型,4.3.3 文本造型,Text(文本)节点用来创建文本造型,通常使用Shape节点的geometry域的域值。 VRML文本造型是一个没有厚度的平面造型,但也可以具有不同的外观和材质属性。 例4-3 恭贺新年 参见教材P 60。,4.3 VRML的空间造型,4.3.4 复杂造型,VRML提供了一些非常灵活的节点使用户能够通过使用点、线和面等来构造所需的几何形体

14、。 这些节点主要包括:PointSet(点)、IndexedLineSet(线)、IndexedFaceSet(面)以及ElevationGrid(海拔栅格)、Extrusion(挤出造型)。 例4-4 制作椅子 参见教材P 62。,4.4 VRML的场景效果,4.4.1 纹理映射 4.4.2 声音技术 4.4.3 光照效果 4.4.4 其它效果,4.4 VRML的场景效果,4.4.1 纹理映射,纹理是一种位图,把纹理图按照一定规则包裹到几何体造型表面的过程称为纹理映射。 VRML提供了3种纹理节点,包括ImageTexture(图像纹理)节点、PixelTexture(像素纹理)节点和Mov

15、ieTexture(电影纹理)节点。 例4-5 制作书柜 参见教材P 64。,4.4 VRML的场景效果,4.4.2 声音技术,在VRML中加入声音涉及到两个部分:声源和声音发射器。 Sound(声音)节点用于创建声音发射器,并指定场景中声源的位置以及立体化的表现形式。 AudioClip节点和MovieTexture节点则用于提供声源,仅可以作为Sound节点中source域的域值。 VRML场景中可引用的声音文件类型主要包括WAV、MID和MPEG等3种。 例4-6 放映电影 参见教材P 66。,4.4 VRML的场景效果,4.4.3 光照效果,在VRML中创建光源时,除了要指定光源的空间

16、位置、光线的发射方向等,还需要设置发射光线的颜色和亮度等。 VRML中光源节点的分类及特点如下: PointLight点光源 DirectionalLight平行光源 SpotLight锥光源 例4-7 光照与阴影 参见教材P 67。,4.4 VRML的场景效果,4.4.4 其它效果,Background(背景)节点:可以控制VRML世界中天空和地面的颜色,指定一组全景图放置在VRML世界的上方、下方或四周。 Viewpoint(视点)节点:用来设置浏览者在VRML世界中的观察位置、空间朝向和视野范围等。 NavigationInfo(导航)节点,用来提供浏览者的替身信息以及该替身如何在VRM

17、L世界中进行导航。 例4-8 宇宙飞行 参见教材P 70。,4.5 VRML的动态交互,4.5.1 动画设计 4.5.2 传感器交互 4.5.3 脚本设计,4.5 VRML的动态交互,4.5.1 动画设计,在VRML中,通过时间传感器和插补器节点,即可实现最常用的线性关键帧动画。 VRML提供了诸如PositionInterpolator(位置)、OrientationInterpolator(朝向旋转)、ColorInterpolator(颜色)、ScalarInterpolator(标量)等多个插补器节点来控制动画。 TimeSensor(时间传感器)节点的作用是创建一个虚拟时钟。 例4-

18、9 地月运行 参见教材P 72。,4.5 VRML的动态交互,4.5.2 传感器交互,VRML提供了一系列传感器来检测用户在虚拟场景中的动作,再通过事件的传递,实现用户与虚拟世界之间的交互。 接触型传感器:用于检测用户对于鼠标的各种操作,如单击、拖动等动作,节点包括TouchSensor(触摸)、PlaneSensor(平面)、CylinderSensor(圆柱体)和SphereSensor(球体)传感器。 感知型传感器用于检测用户与造型的接近程度或造型在场景中是否可见等,节点包括VisibilitySensor(可视)、ProximitySensor(接近)传感器及Collision(碰撞)编组。 例4-10 自动门 参见教材P 7

温馨提示

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

评论

0/150

提交评论