第4章虚拟现实建模语言VRML74.ppt_第1页
第4章虚拟现实建模语言VRML74.ppt_第2页
第4章虚拟现实建模语言VRML74.ppt_第3页
第4章虚拟现实建模语言VRML74.ppt_第4页
第4章虚拟现实建模语言VRML74.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

虚拟现实技术 第4章虚拟现实建模语言VRML 4 1VRML语言概述4 2VRML的语法基础4 3VRML的空间造型4 4VRML的场景效果4 5VRML的动态交互 4 1VRML语言概述 VRML VirtualRealityModelingLanguage 虚拟现实建模语言 是一种用于创建三维造型和渲染的图形描述语言 它将二维 三维图形和动画 音频 视频等多种效果融合在一起 使信息能够在一个具有空间感和实时感的三维空间中被表达出来 同时 它提供灵活有效的人机交互功能 使虚拟世界的真实性和交互性得到更充分的体现 将VRML与WWW一起使用 还可以创建一个通过Internet和WWW链接而成的网络虚拟世界 4 1VRML语言概述 VRML把 虚拟世界 看做是一个 场景 而场景中的一切都被看做是 对象 对场景中对象的描述就构成了VRML文件 VRML文件以正文格式存储 并以 wrl或 wrz扩展名作为后缀 当用户通过浏览器访问一个VRML文件时 浏览器会将VRML中的信息解释成对目标造型和场景的描述 并根据用户在场景中的不同状态实时绘制和渲染这个虚拟空间 4 1VRML语言概述 HTML用于定义可与更多信息相关联的二维页面的布局和内容 VRML用于定义可与更多信息相关联的三维页面的布局和内容 VRML不仅是针对VR 也是针对Web设计的 4 1VRML语言概述 4 1 1VRML的发展历程4 1 2VRML的特点4 1 3VRML编辑器4 1 4VRML浏览器 4 1VRML语言概述 4 1 1VRML的发展历程 1994年 MarkPesce和TonyParisi创建了可用来浏览Internet上三维画面的浏览器原型 称为Labyrinth 迷宫 首次提出了VRML一词 1994年 由SGI公司的工程师GavinBell组织制订了VRML1 0的规范草案 并于同年10月在芝加哥召开的第二届万维网国际会议上公布 VRML2 0是以SGI公司的MovingWorlds提案为基础的 节点类型被扩展为54种 支持的对象也已包括动态和静态两大类 VRML的国际标准草案于1998年1月正式获得ISO的认定和发布 通常被称为VRML97 1998年 VRML组织更名为Web3D组织 并制订了一个新的标准X3D Extensible3D 4 1VRML语言概述 4 1 2VRML的特点 基于Internet共享的虚拟世界较低的配置需求真正的动态交互适用于网络现状的技术开放式的标准 4 1VRML语言概述 4 1 3VRML编辑器 编辑VRML源程序代码 可以使用几乎任何一种文本编辑器 在此推荐一个功能强大并且使用便捷的VRML编辑器 VrmlPad VrmlPad的安装与运行 VrmlPad的试用版可以从VRML的资源站点下载安装即可 VrmlPad主要功能包括文件管理 文本编辑 浏览等 4 1VRML语言概述 4 1 4VRML浏览器 浏览VRML虚拟空间 需要使用浏览器插件 常用的有 CosmoPlayerVRML浏览器MicrosoftVRML2 0浏览器其它浏览器 如SVR 兼容VRML97 CommunityPlace LiquidReality等 显示在CosmoPlayerVRML浏览器中的三维虚拟会议大厅 4 1VRML语言概述 4 1 4VRML浏览器 ParallelGraphicsCortona3DVRML浏览器 4 2VRML的语法基础 4 2 1VRML的组成要素4 2 2VRML的文件结构4 2 3VRML的空间计量 4 2VRML的语法基础 4 2 1VRML的组成要素 1 节点 Node 和域 Field 节点是VRML文件中最基本也是最核心的组成部分 单个节点可描述造型 颜色 光照 视点 传感器等 VRML虚拟世界的对象往往是由一组具有一定层次结构关系的节点来构造 域属于节点 由节点及其相关域定义的造型或属性在VRML空间中被视为一个整体 不同的节点可包含不同的域 域之间没有次序之分 4 2VRML的语法基础 4 2 1VRML的组成要素 1 节点 Node 和域 Field 典型节点语法定义如下 4 2VRML的语法基础 4 2 1VRML的组成要素 2 事件 Event 和路由 Route 事件的接口类型有事件入口和事件出口两种 事件入口 eventIn 也称入事件 是节点的逻辑接收器 它负责监听和接收外界事件 事件出口 eventOut 也称出事件 是节点的逻辑发送器 它负责向外界发送节点产生的事件 4 2VRML的语法基础 4 2 1VRML的组成要素 2 事件 Event 和路由 Route 事件出口和事件入口通过路径相连 这就是VRML文件中的另一个基本组成部分 路由 路由为事件的传播提供了传输通道 使事件在事件链中依次向前传递 每经过一个节点就改变该节点的一些域 从而引发VRML世界一系列的变化 4 2VRML的语法基础 4 2 1VRML的组成要素 2 事件 Event 和路由 Route 典型的事件路由定义如下 DEFSENSORTouchSensor 定义一个触摸传感器 DEFSOUNDSound 定义一个声音对象 ROUTESENSOR touchTimeTOSOUND startTime 建立事件的路由 4 2VRML的语法基础 4 2 1VRML的组成要素 3 脚本 Script Java JavaScript行为脚本 插补器 C 函数 VRMLScript LiveConnect VRML外部制作界面等 都是用于生成动态 复杂及逼真的VRML场景的技术 语言和API ApplicationProgrammingInterface Script节点可以看作是一个节点的外壳 它拥有域 eventIn事件 eventOut事件 其本身没有任何动作 但可以通过程序来赋予脚本节点动作 4 2VRML的语法基础 4 2 1VRML的组成要素 4 原型 Prototype 用户还可以通过原型构造机制定义新的节点类型 例如新的几何节点 新的造型 新的材料和新的声音节点等 新节点类型既可以在该原型定义的文件中引用 即内部原型 PROTO 也可以在外部文件中定义后在其它VRML文件中引用 即外部原型 EXTERNPROTO 4 2VRML的语法基础 4 2 2VRML的文件结构 典型的VRML文件结构如下 VRMLV2 0utf8 VRML文件头节点名 创建VRML中各种类型的节点以构成造型域名域值 设置节点的各个域和域值 Script 添加脚本节点 编写脚本程序 ROUTE TO 建立出事件与入事件间的路由 4 2VRML的语法基础 4 2 2VRML的文件结构 1 文件头头文件 VRMLV2 0utf8 向浏览器表述了如下含义 本文件是一个VRML文件 本文件遵循VRML规范的2 0版本 本文件使用国际UTF 8字符集 UTF 8是UNICODE的一种变长字符编码又称万国码 由KenThompson于1992年创建 现在已经标准化为RFC3629 UTF 8用1到6个字节编码UNICODE字符 用在网页上可以在同一页面显示中文简体繁体及其它语言 如日文 韩文 4 2VRML的语法基础 4 2 2VRML的文件结构 2 造型物体的造型 又称场景图 由节点按一定的层次关系组成 它用于构造虚拟世界的主体 各种静态和动态对象 在造型层次模型中 上下层节点之间存在两种关系 包容关系和父子关系 节点的包容关系是指后代节点作为祖先节点的一个属性域而存在 在父子关系中 子节点并不直接出现在父节点的属性域中 它们集中在父节点的MFNode 多节点数据类型 子域内 依次排列 4 2VRML的语法基础 4 2 2VRML的文件结构 3 路由路由不是节点 路由语句可以放置在节点内域可以出现的任何地方 建议将所有ROUTE语句集中放置在文件的末尾 以构成一个系统的事件体系 路由中引用的节点名称都应该在ROUTE语句之前被定义 4 2VRML的语法基础 4 2 2VRML的文件结构 4 注释注释信息以符号 开始 结束于该行的末尾 VRML不支持多行注释 文件头中的 不代表注释含义 4 2VRML的语法基础 4 2 3VRML的空间计量 1 VRML空间坐标系VRML的立体空间采用三维坐标系 该坐标系的原点位于VRML浏览器的中心 X轴的正向水平向右 Y轴的正向垂直向上 Z轴的正向垂直向前 即指向浏览者 如图所示 4 2VRML的语法基础 4 2 3VRML的空间计量 2 VRML的计量单位VRML描述长度的计量单位是VRML单位 它与现实世界或其它三维建模工具的计量单位都没有可比性 VRML描述旋转等角度的计量单位是弧度 常用角度与弧度的对应关系如表所示 4 2VRML的语法基础 4 2 3VRML的空间计量 3 VRML的色彩规范VRML使用红绿蓝 RGB 颜色规范来描述造型 光线和背景等的色彩 RGB颜色包含三个域值均在0 0 1 0之间的浮点数 它们分别对应红 绿 蓝三种颜色的取值 0 0值表示该颜色被关闭 1 0值表示该颜色完全打开 4 2VRML的语法基础 RGB三基色组合颜色示例 4 3VRML的空间造型 4 3 1基本造型4 3 2空间变换4 3 3文本造型4 3 4复杂造型 4 3VRML的空间造型 任何一个VRML虚拟场景中的空间造型都必须使用Shape 形状 节点加以创建 Shape节点的语法格式如下 Shape appearanceNULL SFNodegeometryNULL SFNode 4 3VRML的空间造型 4 3VRML的空间造型 4 3VRML的空间造型 Box size2 02 02 0 SFVec3f Sphere radius1 0 SFFloat Cone bottomRadius1 0 SFFloatheight2 0 SFFloatsideTRUE SFBoolbottomTRUE SFBool Cylinder radius1 0 SFFloatheight2 0 SFFloatsideTRUE SFBoolbottomTRUE SFBooltopTRUE SFBool 4 3VRML的空间造型 Material diffuseColor0 80 80 8 exposedFieldSFColorambientIntensify0 2 exposedFieldSFFloatspecularColor000 exposedFieldSFColoremissiveColor000 exposedFieldSFColorshininess0 2 exposedFieldSFFloattransparency0 exposedFieldSFFloat 4 3VRML的空间造型 4 3VRML的空间造型 4 3 1基本造型 VRML的基本几何造型节点有4种 Box 立方体 节点Cone 圆锥体 节点Cylinder 圆柱体 节点Sphere 球体 节点 例4 1 制作灯笼参见教材P57 4 3VRML的空间造型 4 3 2空间变换 利用Transform 变换 节点可以在VRML空间创建新的坐标系 可以随意translation 平移 rotation 旋转 和scale 缩放 例4 2 制作茶几参见教材P58 4 3VRML的空间造型 4 3 2空间变换 Transform children exposedFieldMFNodetranslation0 00 00 0 exposedFieldSFVec3frotation0 00 01 00 0 exposedFieldSFRotationscale1 01 01 0 exposedFieldSFVec3f 4 3VRML的空间造型 4 3 3文本造型 Text 文本 节点用来创建文本造型 通常使用Shape节点的geometry域的域值 VRML文本造型是一个没有厚度的平面造型 但也可以具有不同的外观和材质属性 例4 3 恭贺新年参见教材P60 4 3VRML的空间造型 4 3 4文本造型 Text string exposedFieldMFStringlength exposedFieldMFFloatmaxExtent0 0 exposedFieldSFFloatfontStyleNULL exposedFieldSFNode 4 3VRML的空间造型 4 3 4文本造型 FontStyle family SERIF SFStringsize1 0 SFFloatspacing1 0 SFFloatstyle PLAIN SFStringhorizontalTRUE SFBooljustify BEGIN SFStringleftToRightTRUE SFBooltopToBottomTRUE SFBoollanguage SFString 4 3VRML的空间造型 4 3 4复杂造型 VRML提供了一些非常灵活的节点使用户能够通过使用点 线和面等来构造所需的几何形体 这些节点主要包括 PointSet 点集 IndexedLineSet 线集 IndexedFaceSet 面集 以及ElevationGrid 海拔栅格 Extrusion 挤出造型 例4 4 制作椅子参见教材P62 4 3VRML的空间造型 4 3 4复杂造型 PointSet coordNULL exposedFieldSFNodecolorNULL exposedFieldSFNode Coordinate point exposedFieldMFVec3f 4 3VRML的空间造型 4 3 4复杂造型 IndexedLineSet coordNULL exposedFieldSFNodecoordIndex MFInt32colorNULL exposedFieldSFNodecolorIndex MFInt32 4 3VRML的空间造型 4 3 4复杂造型 IndexedFaceSet coordNULL exposedFieldSFNodecoordIndex MFInt32texCoordNULL exposedFieldSFNodetexCoordIndex MFInt32colorNULL exposedFieldSFNodecolorIndex MFInt32 4 3VRML的空间造型 4 3 4复杂造型 Extrusion crossSection 11 1 1 1 1 11 11 MFVec2fspine 000 010 MFVec2fscale11 MFVec2forientation0010 MFRotation 4 4VRML的场景效果 4 4 1纹理映射4 4 2声音技术4 4 3光照效果4 4 4其它效果 4 4VRML的场景效果 4 4 1纹理映射 纹理是一种位图 把纹理图按照一定规则包裹到几何体造型表面的过程称为纹理映射 VRML提供了3种纹理节点 包括ImageTexture 图像纹理 节点 PixelTexture 像素纹理 节点和MovieTexture 电影纹理 节点 例4 5 制作书柜参见教材P64 4 4VRML的场景效果 4 4 1纹理映射 ImageTexture url exposedFieldMFStringrepeatSTURE SFBoolrepeatTTRUE SFBool 4 4VRML的场景效果 4 4 1纹理映射 PixelTexture image000 exposedFieldMFStringrepeatSTURE SFBoolrepeatTTRUE SFBool 4 4VRML的场景效果 4 4 1纹理映射 MovieTexture url exposedFieldMFStringloopFALSE exposedFieldSFBoolspeed1 0 exposedFieldSFFloatstartTime0 0 exposedFieldSFTimestopTime0 0 exposedFieldSFTimerepeatSTURE SFBoolrepeatTTRUE SFBool 4 4VRML的场景效果 4 4 2声音技术 在VRML中加入声音涉及到两个部分 声源和声音发射器 Sound 声音 节点用于创建声音发射器 并指定场景中声源的位置以及立体化的表现形式 AudioClip节点和MovieTexture节点则用于提供声源 仅可以作为Sound节点中source域的域值 VRML场景中可引用的声音文件类型主要包括WAV MID和MPEG等3种 例4 6 放映电影参见教材P66 4 4VRML的场景效果 4 4 2声音技术 Sound sourceNULL exposedFieldSFNodelocation0 00 00 0 exposedFieldSFVec3fdirection0 00 01 0 exposedFieldSFVec3fintensity1 0 exposedFieldSFFloatmaxBack10 0 exposedFieldSFFloatmaxFront10 0 exposedFieldSFFloatminBack10 0 exposedFieldSFFloatminFront10 0 exposedFieldSFFloatpriority0 0 exposedFieldSFFloatspatializeTURE exposedFieldSFBool 4 4VRML的场景效果 4 4 2声音技术 AudioClip url exposedFieldMFStringdescription exposedFieldMFStringdirection0 00 01 0 exposedFieldSFVec3floopFALSE exposedFieldSFBoolpitch1 0 exposedFieldSFFloatstartTime0 0 exposedFieldSFTimestopTime0 0 exposedFieldSFTime 4 4VRML的场景效果 4 4 3光照效果 在VRML中创建光源时 除了要指定光源的空间位置 光线的发射方向等 还需要设置发射光线的颜色和亮度等 VRML中光源节点的分类及特点如下 PointLight点光源DirectionalLight平行光源SpotLight锥光源 例4 7 光照与阴影参见教材P67 4 4VRML的场景效果 4 4 3光照效果 PointLight onTURE exposedFieldSFBoollocation0 00 00 0 exposedFieldSFVec3fradius100 0 exposedFieldSFFloatintensity1 0 exposedFieldSFFloatambientIntensity0 0 exposedFieldSFFloatcolor1 01 01 0 exposedFieldSFColorattenuation1 00 00 0 exposedFieldSFVec3f 4 4VRML的场景效果 4 4 3光照效果 DirectionalLight onTURE exposedFieldSFBooldirection0 00 0 1 0 exposedFieldSFVec3fintensity1 0 exposedFieldSFFloatcolor1 01 01 0 exposedFieldSFColor 4 4VRML的场景效果 4 4 3光照效果 SpotLight onTURE exposedFieldSFBooldirection0 00 0 1 0 exposedFieldSFVec3flocation0 00 00 0 exposedFieldSFVec3fradius100 0 exposedFieldSFFloatintensity1 0 exposedFieldSFFloatambientIntensity0 0 exposedFieldSFFloatcolor1 01 01 0 exposedFieldSFColorattenuation1 00 00 0 exposedFieldSFVec3fbeamWidth1 570796 exposedFieldSFFloatcutOffAngle0 785398 exposedFieldSFFloat 4 4VRML的场景效果 4 4 4其它效果 Background 背景 节点 可以控制VRML世界中天空和地面的颜色 指定一组全景图放置在VRML世界的上方 下方或四周 Viewpoint 视点 节点 用来设置浏览者在VRML世界中的观察位置 空间朝向和视野范围等 NavigationInfo 导航 节点 用来提供浏览者的替身信息以及该替身如何在VRML世界中进行导航 例4 8 宇宙飞行参见教材P70 4 4VRML的场景效果 4 4 4其它效果 Background skyColor 0 00 00 0 exposedFieldMFColorskyAngle exposedFieldMFFloatgroundColor 0 00 00 0 exposedFieldMFColorgroundAngle exposedFieldMFFloatfrontUrl exposedFieldMFStringbackUrl exposedFieldMFStringleftUrl exposedFieldMFStringrightUrl exposedFieldMFStringtopUrl exposedFieldMFStringbottomUrl exposedFieldMFString 4 4VRML的场景效果 4 4 4其它效果 Viewpoint position0 00 010 0 exposedFieldSFVec3forientation0 00 01 00 0 exposedFieldSFRotationfieldOfView0 785398 exposedFieldSFFloatdescription SFStringjumpTURE eventInSFBool 4 4VRML的场景效果 4 4 4其它效果 Fog color1 01 01 0 exposedFieldSFColorfogType LINEAR exposedFieldSFStringvisibilityRange0 0 exposedFieldSFFloat 4 4VRML的场景效果 4 4 4其它效果 NavigationInfo headLightTRUE exposedFieldSFBooltype WALK ANY exposedFieldMFStringspeed1 0 exposedFieldSFFloatvisibilityLimit0 0 exposedFieldSFFloatavatarSize 0 251 60 75 exposedFieldMFFloat 4 5VRML的动态交互 4 5 1动画设计4 5 2传感器交互4 5 3脚本设计 4 5VRML的动态交互 4 5 1动画设计 在VRML中 通过时间传感器和插补器节点 即可实现最常用的线性关键帧动画 VRML提供了诸如PositionInterpolator 位置 OrientationInterpolator 朝向旋转 ColorInterpolator 颜色 ScalarInterpolator 标量 等多个插补器节点来控制动画 TimeSensor 时间传感器 节点的作用是创建一个虚拟时钟 向各插补器节点输出时间事件 进行时间控制 以使插补器节点产生随时间变化的动画效果 4 5VRML的动态交互 4 5 1动画设计 TimeSensor enableTRUE exposedFieldSFBoolloopFALSE exposedFieldSFBoolcycleInterval1 0 exposedFieldSFTimestartTime0 exposedFieldSFTimestopTime0 exposedFieldSFTimeisActive eventOutSFBooltime eventOutSFTimecycleTime eventOutSFTimefraction changed eventOutSFFloat 4 5VRML的动态交互 4 5 1动画设计 PositionInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset fraction eventInSFFloatvalue changed eventOutSFVec3f 4 5VRML的动态交互 4 5 1动画设计 Color

温馨提示

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

评论

0/150

提交评论