




已阅读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#添加脚本节点,编写脚本程序ROUTETO#建立出事件与入事件间的路由,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.01.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节点的语法格式如下:ShapeappearanceNULL#SFNodegeometryNULL#SFNode,4.3VRML的空间造型,4.3VRML的空间造型,4.3VRML的空间造型,Boxsize2.02.02.0#SFVec3fSphereradius1.0#SFFloatConebottomRadius1.0#SFFloatheight2.0#SFFloatsideTRUE#SFBoolbottomTRUE#SFBoolCylinderradius1.0#SFFloatheight2.0#SFFloatsideTRUE#SFBoolbottomTRUE#SFBooltopTRUE#SFBool,4.3VRML的空间造型,MaterialdiffuseColor#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空间变换,Transformchildren#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文本造型,Textstring#exposedFieldMFStringlength#exposedFieldMFFloatmaxExtent0.0#exposedFieldSFFloatfontStyleNULL#exposedFieldSFNode,4.3VRML的空间造型,4.3.4文本造型,FontStylefamily“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复杂造型,PointSetcoordNULL#exposedFieldSFNodecolorNULL#exposedFieldSFNodeCoordinatepoint#exposedFieldMFVec3f,4.3VRML的空间造型,4.3.4复杂造型,IndexedLineSetcoordNULL#exposedFieldSFNodecoordIndex#MFInt32colorNULL#exposedFieldSFNodecolorIndex#MFInt32,4.3VRML的空间造型,4.3.4复杂造型,IndexedFaceSetcoordNULL#exposedFieldSFNodecoordIndex#MFInt32texCoordNULL#exposedFieldSFNodetexCoordIndex#MFInt32colorNULL#exposedFieldSFNodecolorIndex#MFInt32,4.3VRML的空间造型,4.3.4复杂造型,ExtrusioncrossSection11,1-1,-1-1,-11,11#MFVec2fspine000,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纹理映射,ImageTextureurl#exposedFieldMFStringrepeatSTURE#SFBoolrepeatTTRUE#SFBool,4.4VRML的场景效果,4.4.1纹理映射,PixelTextureimage000#exposedFieldMFStringrepeatSTURE#SFBoolrepeatTTRUE#SFBool,4.4VRML的场景效果,4.4.1纹理映射,MovieTextureurl#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声音技术,SoundsourceNULL#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声音技术,AudioClipurl#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光照效果,PointLightonTURE#exposedFieldSFBoollocation0.00.00.0#exposedFieldSFVec3fradius100.0#exposedFieldSFFloatintensity1.0#exposedFieldSFFloatambientIntensity0.0#exposedFieldSFFloatcolor1.01.01.0#exposedFieldSFColorattenuation1.00.00.0#exposedFieldSFVec3f,4.4VRML的场景效果,4.4.3光照效果,DirectionalLightonTURE#exposedFieldSFBooldirection0.00.0-1.0#exposedFieldSFVec3fintensity1.0#exposedFieldSFFloatcolor1.01.01.0#exposedFieldSFColor,4.4VRML的场景效果,4.4.3光照效果,SpotLightonTURE#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其它效果,BackgroundskyColor0.00.00.0#exposedFieldMFColorskyAngle#exposedFieldMFFloatgroundColor0.00.00.0#exposedFieldMFColorgroundAngle#exposedFieldMFFloatfrontUrl“#exposedFieldMFStringbackUrl“#exposedFieldMFStringleftUrl“#exposedFieldMFStringrightUrl“#exposedFieldMFStringtopUrl“#exposedFieldMFStringbottomUrl“#exposedFieldMFString,4.4VRML的场景效果,4.4.4其它效果,Viewpointposition0.00.010.0#exposedFieldSFVec3forientation0.00.01.00.0#exposedFieldSFRotationfieldOfView0.785398#exposedFieldSFFloatdescription“#SFStringjumpTURE#eventInSFBool,4.4VRML的场景效果,4.4.4其它效果,Fogcolor1.01.01.0#exposedFieldSFColorfogType“LINEAR”#exposedFieldSFStringvisibilityRange0.0#exposedFieldSFFloat,4.4VRML的场景效果,4.4.4其它效果,NavigationInfoheadLightTRUE#exposedFieldSFBooltype“WALK”ANY”#exposedFieldMFStringspeed1.0#exposedFieldSFFloatvisibilityLimit0.0#exposedFieldSFFloatavatarSize5#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动画设计,TimeSensorenableTRUE#exposedFieldSFBoolloopFALSE#exposedFieldSFBoolcycleInterval1.0#exposedFieldSFTimestartTime0#exposedFieldSFTimestopTime0#exposedFieldSFTimeisActive#eventOutSFBooltime#eventOutSFTimecycleTime#eventOutSFTimefraction_changed#eventOutSFFloat,4.5VRML的动态交互,4.5.1动画设计,PositionInterpolatorkey#exposedFieldMFFloatkeyValue#exposedFieldMFVec3fset_fraction#eventInSFFloatvalue_changed#eventOutSFVec3f,4.5VRML的动态交互,4.5.1动画设计,Colo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新零售背景下实体书店顾客体验升级研究报告
- 2025至2030年中国减肥药行业市场深度分析及未来发展趋势预测报告
- 解析卷北师大版9年级数学上册期末试题附答案详解【轻巧夺冠】
- 解析卷山东省乐陵市中考数学真题分类(位置与坐标)汇编章节测试试题(含答案解析)
- 解析卷人教版8年级数学下册《平行四边形》定向攻克试题(含详细解析)
- 2025版水利工程地质勘察合同范本
- 2025办公空间租赁合同(含装修及维护条款)
- 2025年度润滑油产品回收与再利用合同
- 2025年度专业图形设计电脑租赁合同范本
- 2025年度餐饮企业员工职业培训合同范本
- 生产管理办法范本
- 肾脏先天畸形超声检查
- 混凝土防暴墙拆除方案(3篇)
- 精神病患者的康复护理计划
- 心理健康与寝室生活
- 语“你相遇”文启新程-2025年秋季高一语文开学第一课-2025-2026学年高中主题班会
- 个性化教育实施策略
- 2025年安全生产考试题库(安全知识)安全培训课程试题
- 试述ABC库存管理办法
- 13.2+磁感应强度+磁通量+课件-2024-2025学年高二上学期物理人教版(2019)必修第三册
- 急诊科护理月质量分析
评论
0/150
提交评论