收藏 分享(赏)

vrml讲稿.doc

上传人:HR专家 文档编号:7539605 上传时间:2019-05-21 格式:DOC 页数:9 大小:40KB
下载 相关 举报
vrml讲稿.doc_第1页
第1页 / 共9页
vrml讲稿.doc_第2页
第2页 / 共9页
vrml讲稿.doc_第3页
第3页 / 共9页
vrml讲稿.doc_第4页
第4页 / 共9页
vrml讲稿.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、讲稿讲述人车皓阳一、VRML 概述1VRML 发展的历史及其完善过程中出现的几个标准VRML 最初出现在 1994 年的瑞士日内瓦的 W3 会议上,Tim Berners-Lee,也就是 Web 的奠基人,对 Mark Pesce 的编程工作产生了浓厚的兴趣并邀请他给出名为”Cyberspace” 的论文。这篇论文解释了一个名为 Labyrinth 的 VRML 浏览器原型,这是 Mark 和 Tony Parisi在 1994 年 1 月完成的一个程序。冲动来源于 William Gibson 的一部名为 Neuromancer 的小说。因为是第一次在 Web 上呈现出三维的界面,所以在 W

2、3 会议上 Labyrinth 受到了特别的关注。VRML 是这样一个缩写词,它的英文全称是 Virtual Reality Modeling Language。在最初的时候,M 代表 Markup,后来为了和 HTML 相区别,在 W3 会议之后的几个月内就把名称改为了 Modeling 了。Mark 的那篇论文获得了巨大的成功,所以就举办了名为 www-vrml 的 mailing list(http:/vag.vrml.org/www-vrml/)以进行更为深入的讨论。 Mark 的身份是这个 mailing list的协调员。这个邮件列表代表了 VRML 在学术上的发展。Gavin B

3、ell,SGI 公司的一名编程人员,在 VRML 团体中享有很高的声誉,采用 Open Inventor 作为 VRML 文件的官方格式。一些人觉得应该为这项新技术创建一个全新的格式,而另一部分人包括 Mark 本人则认为如果VRML 文件格式符合现存的所有图象文件格式,那么它必将获得巨大的成功。理想的结构应该是创建一个和 HTML 相类似而又符合专业三维设计师的需求。最终 Open Inventor 被采纳了,GavinBell 在 VRML 1.0 标准的制订过程中做了大量的文档工作。除了 Open Inventor 之外,还有几个标准:CDF(Cyberspace Description

4、 Format)、AFF(A File Format for the Interchange of Virtual World)、Labyrinth-VRML Specification Version 1.3.1、Web OOGL(Object-Oriented Graphics Language)、MSDL(Manchester Scene Description Language)和 Meme(Multitasking Extensible Messaging Environment)等,但是这几个标准最终的结果都不如 Open Inventor 来得幸运,这主要是和 OI 的几个重要特

5、性分不开的:窗口系统并且是独立于平台的。允许高质量的对象拾取。支持 PostScript 打印语言。在 OpenGL 的顶层创建。定义了三维数据交换的一个标准的文件格式。鼓励自定义对象。制作了一个适合于三维交互的事件模型。在 OI 被大众所接受之后,它被调整到我们现在所见到的 VRML 1.0 格式。很明显VRML 是作为一个独立语言出现的,而不仅仅是作为一个 HTML 的扩展而出现的。VRML对于网络的要求比 HTML 更加严格并且在使用时要求更多数量的服务器。VRML 1.0 标准中给出了超链接锚点(WWWAnchor) 平行于 HTML 中的 HREF,另一个语言上的特征是LOD(细节节

6、点 ),它依据物体在场景中的位置和浏览器的渲染性能来为物体分配正确的浏览数据。VRML 1.0 和它的后继者不太一样,它是完全面向 ASCII 字符集的,被限制在处理 127个字符的能力上。这个限制对于处理非罗马语言的字符就会产生问题。VRML 1.0 标准不能处理 avatar 也是一个很大的失误。1994 年的 11 月第二界 WWW 会议召开,在这次会议上提出了 VRML 1.0 标准。在这次会议之后,Parisi 建立了自己的公司 Intervista 并创建了第一个 VRML 浏览器WorldView。SGI 公司也在 1995 年的四月给出了它的第一个 Web 浏览器 WebSpa

7、ce。在当年的夏天 Netscape、NEC、DEC 和 Spyglass 宣布对 VRML 进行支持。同年的八月,VAG(VRML 工程组)成立。95 年的十月,VAG 成员决定把工作重心放在引导方向,VRML 2.0 由此产生。VRML 和 Java 团体的第一次会晤是在 1996 年的第三次的 W3 会议上。目前最新的标准是 1997 年制订的 VRML 97。在 VRML 的整个发展历程中,出现了几个变种的标准:VRML+ 和 VRML 1.1。VRML +是 IBM 对 VRML 的一种扩展标准,出现在 1995 年的八月。IBM 公司准备以这项技术对 VRML 服务提供大范围的支持

8、。VRML +准备在场景中提供一个象 avatar 一样的数字演员并提供象 VRML 2.0 一样功能的交互支持。VRML 1.1 是 VRML 1.0 的一套扩展集,它试图扩展最初版本的功能。这个标准后来被集成进了 VRML 2.0 当中。2VRML 的基本工作原理及其基本特性用文本信息描述三维场景,在 Internet 网上传输,在本地机上由 VRML 的浏览器解释生成三维场景,解释生成的标准规范即是 VRML 规范。正是基于 VRML 的这种工作机制,才使其可能在网络应用中有很快的发展。当初 VRML 的设计者们考虑的也正是-文本描述的信息在网络上的传输比图形文件迅速,所以他们避开在网络

9、上直接传输图形文件而改用传输图形文件的文本描述信息,把复杂的处理任务交给本地机从而减轻了网路的负荷。统分结合模式:VRML 的访问方式基于 C/S 模式,其中服务器提供 VRML 文件,客户通过网络下载希望访问的文件,并通过本地平台的浏览器(Viewer)对该文件描述的 VR 世界进行访问;即 VRML 文件包含了 VR 世界的逻辑结构信息,浏览器根据这些信息实现许多 VR功能。这种由服务器提供统一的描述信息,客户机各自建立 VR 世界的访问方式被称为统分结合模式,也是 VRML 的基本概念。由于浏览器是本地平台提供的,从而实现了 VR 的平台无关性。基于 ASCII 码的低带宽可行性:VRM

10、L 像 HTML 一样,用 ASCII 文本格式来描述世界和链接,保证在各种平台上通用,同时也降低了数据量,从而在低带宽的网络上也可以实现。实时 3D 着色引擎:传统的 VR 中使用的实时 3D 着色引擎在 VRML 中得到了更好的体现。这一特性把 VR 的建模与实时访问更明确的隔离开来,也是 VR 不同于三维建模和动画的地方。后者预先着色,因而不能提供交互性。VRML 提供了 6+1 个自由度,即三个方向的移动和旋转,以及和其他 3D 空间的超链接(Anchor)。可扩充性:VRML 作为一种标准,不可能满足所有应用的需要。有的应用希望交互性更强,有的希望画面质量更高,有的希望 VR 世界更

11、复杂。这些要求往往是相互制约的,同时又受到用户平台硬件性能的制约,因而 VRML 是可扩充的,即可以根据需要定义自己的对象及其属性,并通过 Java 语言等方式使浏览器可以解释这种对象及其行为。3VRML 文件格式及 MIME 类型VRML 文件可以包括下列四个主要成份:VRML 文件头、原型、造型和脚本、路由。并不是所有的文件都包括这些要素,唯一必须的是 VRML 文件头。VRML 2.0 标准的文件头为 #VRML V2.0 utf8。这不同于 1.0 标准中的文件头,1.0 标准中文件只支持 ASCII 字符集,所以文本头为#VRMLV1.0ASCII 。为了向下兼容,VRML 2.0文

12、件格式兼容 1.0 文件格式。这个文件头有三个含义:第一、表明这个文件是一个 VRML文件;第二,符合 VRML 2.0 版本;第三,文件使用的是 utf8 字符集(这是多种语言中键入字符的一种标准方式,包括英语,也支持朝鲜语、日语和阿拉伯语的字符) 。VRML 注释允许在不影响 VRML 空间外观情况下,在 VRML 中包括其他信息。可以加入对文件内容、文件绘制的不同部分的注释。注释以一个符号开始,结束于该行的最后。VRML 中包含描述空间中造型及其属性的节点。这些是 VRML 的构件。单个节点描述造型、颜色、光照、视点、以及造型、动画定时器、传感器、内插器等的定位和朝向等等。节点一般包括:

13、节点的类型(必需) 。一对括号(必需) 。括号中的一定数目描述节点属性的域(可选)和域值。Cylinderheight 2.0radius 2.0括号将节点的域信息组织在一起。组织在括号中的域是属于节点的。由节点及其相关域定义的造型或属性在空间中被视为一个整体。所有的域类型,要么是单值类型,要么是多值类型。单值类型是单一的值,如一种颜色和一个数字,该类型命名以“SF”开始。多值类型可以很有值,比如颜色和数字的列表,命名以“MF” 开始。当指定多值类型时,使用括号将值的列表扩起来。VRML 文件以扩展名.wrl 或.wrz 结尾,表示这是一个包含 VRML 空间的文件。MIME 是英文 Mult

14、ipurpose Internet Mail Extensions多用途 Internet 邮件扩展的缩写。它用来定义 Internet 上传送的文件内容类型的软件标准,所有的 Web 浏览器都能够理解 MIME所定义的文件类型,并使用它们在浏览器上自动决定显示的信息内容。例如:如果一个MIME 类型显示一个文件中包含 VRML 文本,那么浏览器将格式化 VRML 文本使其显示在浏览器的窗口中。一个 MIME 内容类型由用斜杠分开的两部分指定。第一部分说明内容的一般类型,象文本、音频、视频类型。第二部分说明内容的子类型,用于指定内容使用的确切格式。MIME 内容类型由 Internet 协会标

15、准化,临时的或最新的 MIME 内容类型都以 x-开始(x 表示扩展) 。VRML 非常新,以至于它现在使用下列扩展的 MIME 内容类型:x-world/x-vrml。将来,VRML 的内容类型将融合进正式的 MIME 标准,并成为下列 MIME内容类型:model/vrml。4VRML 中的节点分类VRML 中的节点有以下几种类型:造型尺寸、外观节点:Shape、Appearance、Material原始几何造型节点:Box、 Cone、Cylinder、Sphere造型编组节点:Group、Switch、Billboard文本造型节点:Text、FrontStyle造型定位、旋转、缩放节

16、点:Transform内插器节点:TimeSensor、PositionInterpolater、OrientationInterpolater 、 ColorInterpolator、 ScalarInterpolator、CoordinateInterpolator感知节点:TouchSensor、 CylinderSensor、PlaneSensor、SphereSensor、VisibilitySensor、ProximitySensor、Collision点、线、面集节点:PointSet、IndexedLineSet、IndexedFaceSet、Coordinate海拔节点:El

17、evationGrid挤出节点:Extrusion颜色、纹理、明暗节点:Color、ImageTexture、PixelTexture、MovieTexture、Normal控制光源的节点:PointLight、DirectionalLight、SpotLight背景节点:Background声音节点:AudioClip、MovieTexture、Sound细节控制节点:LOD雾节点:Fog空间信息节点:WorldInfo锚点节点:Anchor脚本节点:Script控制视点的节点:Viewpoint、NavigationInfo用于创建新节点类型的节点:PROTO、EXTERNPROTO、IS

18、二、VRML 中较为深入的几个概念1构建 VRML 文件的几种方法构建 VRML 文件一般有三种方法:使用文本编辑器直接进行 VRML 文件的书写。这样做的不足之处是只能创建比较简单的物体和场景。创建复杂场景的时候,几乎不可能使用文本编辑器来直接编写。第一是因为场景之间相互关系和位置确定比较复杂,第二是对于复杂物体的建模显得无能为力(精确到小数位两位已经是计算的一个极限了) ,第三对数学能力要求较高。一般的方法是使用可视化编辑器来建模。使用可视化编辑器避免了直接使用文本建模时的一些问题,例如不能生成复杂场景等。这些工具的一个突出的优点就是使用起来相当方便,它不需要手工地输入大量的命令而只需要轻

19、轻拖动鼠标即可实现大量程序才可能完成的功能。常见的几个可视化编辑器有:Cosmo World 2.0、Paragraphs Virtual Home Space Builder、 Home Space、Caligaris Pioneer、Virtus WalkThrough Pro 和 3-D Website Builder 等。第三种方法就是使用其它常见的图形格式进行转换。在 Web 网上,存在着大量的各种各样的三维文件格式,转换工具的作用就是在这些文件格式之间进行转换。需要注意的是,所有的转换程序都有局限性,例如在转换特定文件中的光照和纹理贴图时就会失败。InterChange 是 Syn

20、desis 公司(http:/)的一项产品,它可以执行大约五十种文件格式之间的转换,VRML 就是这五十种文件格式中的一种。Extreme 3-D 是 Macromedia 公司(http:/)的一项功能非常强大的产品,它对于 VRML 文件的转换功能在多媒体创作人员当中是深受欢迎的。使用 Extreme 3-D,你就可以通过点击鼠标来把二维模型转换成三维模型。DoomToVrml2 使你可以在网上发布你自己的 Doom 文件,它使得你可以把 Doom 层次的多边形和纹理信息转换成为 VRML 2.0 格式的文件(http:/ 。VRML1to2 可以将符合 VRML 1.0 格式的文件转换成

21、为符合 VRML 2.0 格式的文件,Sony公司(http:/ 来自 SGI 公司,它执行的功能和上面的转换器一样。2浏览 VRML 的方法及几种常见的 VRML 插件浏览 VRML 的一般方法是使用 VRML 浏览器,也可以在 IE 等通用浏览器上通过VRML 浏览器插件对 VRML 文件进行浏览。3VRML 中的动画效果要理解 VRML 中动画的概念,必需首先理解路由和事件。为了使虚拟空间具有动感,构造指令可以包含绑定指令,绑定指令描述如何将节点绑定在一起。VRML 绑定包括:绑定在一起的节点和在节点之间绑定的路由或者叫做路径。绑定两个节点之后,第一个节点通过这样的路径传送给第二个节点的

22、信息叫作事件。事件包含一个值。当一个节点接收到一个事件时,它将根据节点的特征开始动画或者其它事情。通过绑定多个节点,用户可以创建许多路由,从而使空间更加具有动感。大多数 VRML 节点都可以绑定在线路之上,每个节点都有输入、输出插座。一些节点同时具有输入、输出插座,而另外的一些节点仅有其中的一种。节点的输入插座称为eventIn,输出插座称为 eventOut。当链接一个路由时,eventIn 接受输入,eventOut 将事件输出。例如,Group 节点语法:Groupchildren #exposedField MFNodebboxCenter 0.0 0.0 0.0 #field SFV

23、ec3fbboxSize -1.0 -1.0 -1.0 #field SFVec3faddChildren #eventIn MFNoderemoveChildren #eventOut MFNode该节点中的 addChildren 就是输入插座,removeChildren 就是输出插座。上述节点中的children 域是一个 exposedField 域,exposedField 域拥有两个隐含插座:一个用来设置它的值,而另一个用来传送域值。隐含的输入插座总是以 set_XXX 命名,其中 XXX 是exposedField 域的名称。与此相似,隐含的输出插座是以 XXX_changed

24、 命名。对于上述节点来说,children 域隐含的插座就是 set_children 和 children_changed。当创建路由时,使用节点的 eventIn 和 eventOut 的名称来设定链接路由的地方。对于上述节点来说,创建路由时链接到 addChildren 和 removeChildren 上。对于一个 exposed 域,你可以绑定一个路由至隐含的 eventIn 和 eventOut,也可以直接绑定至 exposed 域本身。对于 Group 节点来说,即绑定至 children 域。节点的每个输入输出路由也有类型,例如一个 SFFloat 类型的 eventOut,当

25、它绑定一个路由时,输出浮点数。SFFloat 类型的 eventIn,能够接收浮点值。创建路由之后,线路路由将处于睡眠状态,直到有一个事件从发送节点发送到接收节点。接收节点接收事件之后将作出反应,反应类型依赖于:接收事件节点的类型路由所绑定的节点输入插座事件所包含的数值当 前节点的活动状态VRML 中的动画产生是由于变动了任何一个坐标系的位置、方向和形体比例,从而使物体按你所想的方式飞行、平移、旋转或按比例缩放。TimeSensor 节点的作用象一个时钟,它可以被用来执行开始,停止或者其他控制动画的动作。随着时间的流逝,这个传感器就会产生事件来表示时间的变化。通过将这些事件人 TimeSens

26、or 节点的 eventOut 路由到其他节点,当 TimeSensor 节点的时钟计时时,你可以使这些节点发生相应的变化。如果要使一个坐标系平移、旋转和按比例缩放的话,你可以将 TimeSensor 节点事件路由至 PositionInerpolator 和 OrientationInterpolator 节点。这些节点中的每一个产生新的位置和旋转值,并通过他们的 eventOut 传送这些值。按顺序将这些值路由到 Tranform 节点,就可以使节点的坐标系随动画过程的发展而发生平移、旋转和按比例缩放。4VRML 中的自身交互可以做到什么程度如果要使你的空间具有交互性,你可以给一个造型附带

27、一个传感器,该传感器使用一个定点设备来感知观察者的动作。当观察者点击到一个附带有传感器的造型时,传感器就输出一个事件,这个事件就被路由到其它的节点来开始一个动画。TouchSensor 是一种用来检测观察者的接触和将事件输出的传感器。这些输出描述了在何时、何地,观察者接触到了可感知的造型。CylinderSensor、PlaneSensor 和 SphereSensor 节点也可用来检测何时观察者接触到一个可感知的造型,并且提供了用来改变造型位置和方向的输出。在 VRML 中,你可以将一个传感器附在一个造型上,用它来检测观察者的移动、点击和拖动。当观察者与一个可感知的造型相互作用时,你就可以把

28、传感器的输出连入一个线路中,从而引起造型的移动和动画的播放。感知观察者接近常使用三种方法:感知观察者的可视性、感知观察者的接近性和通过碰撞检测。可见传感器从观察者的位置和方向来感知在空间中的一个长方体区域是否可视。你可以通过这些传感器来启动和停止动画或者控制其他的动作,这些动作仅当一个可感知的区域可见时是必要的。通过给出中心和尺寸,你可以指定一个由 VisibilitySensor 节点感测的空间区域。碰撞检测是检测空间中观察者与造型接近和碰撞的时间。碰撞节点在检测观察者的碰撞时做两件事:通过 CollideTime eventOut 事件输出当前的绝对时间。提示浏览器。以上就是 VRML 场

29、景中的几种交互,使用这些交互我们可以做到类似电灯开启,自动滑动门等效果。但是更为复杂的交互使用它本身所提供的传感器就显得无能为力了,这就需要利用 Script 和 Proto 节点等对其进行功能上的扩展,最好是利用 Java 技术完成这些扩展工作,因为 Sun 公司对 VRML 技术也非常看好。5创建 VRML 场景的一个实例#VRML V2.0 utf8GroupchildrenShapeappearance DEF Yellow Appearancematerial MaterialdiffuseColor 1.0 1.0 0.0geometry Sphere,DEF Planet1 Tr

30、ansformtranslation 2.0 0.0 0.0center -2.0 0.0 0.0children Shapeappearance DEF Red Appearancematerial MaterialdiffuseColor 1.0 0.0 0.0geometry Sphereradius 0.2,DEF Planet2 Transformtranslation 3.0 0.0 0.0center -3.0 0.0 0.0children Shapeappearance DEF Green Appearancematerial MaterialdiffuseColor 0.0

31、 1.0 0.0geometry Sphereradius 0.3,DEF Planet3 Transformtranslation 4.0 0.0 0.0center -4.0 0.0 0.0children Shapeappearance DEF Blue Appearancematerial MaterialdiffuseColor 0.0 0.0 1.0geometry Sphereradius 0.5,DEF Planet4 Transformtranslation 5.0 0.0 0.0center -5.0 0.0 0.0children Shapeappearance DEF

32、Agenta Appearancematerial MaterialdiffuseColor 0.0 1.0 1.0geometry Sphereradius 0.4,DEF Clock1 TimeSensorcycleInterval 2.0loop TRUE,DEF Clock2 TimeSensorcycleInterval 3.5loop TRUE,DEF Clock3 TimeSensorcycleInterval 5.0loop TRUE,DEF Clock4 TimeSensorcycleInterval 6.5loop TRUE,DEF PlanetPath1 Orientat

33、ionInterpolatorkey 0.0 0.50 1.0keyValue0.0 0.0 1.0 0.00.0 0.0 1.0 3.140.0 0.0 1.0 6.28,DEF PlanetPath2 OrientationInterpolatorkey 0.0 0.50 1.0keyValue0.0 0.0 1.0 0.00.0 0.0 1.0 3.140.0 0.0 1.0 6.28,DEF PlanetPath3 OrientationInterpolatorkey 0.0 0.50 1.0keyValue0.0 0.0 1.0 0.00.0 0.0 1.0 3.140.0 0.0

34、1.0 6.28,DEF PlanetPath4 OrientationInterpolatorkey 0.0 0.50 1.0keyValue0.0 0.0 1.0 0.00.0 0.0 1.0 3.140.0 0.0 1.0 6.28ROUTE Clock1.fraction_changed TO PlanetPath1.set_fractionROUTE Clock2.fraction_changed TO PlanetPath2.set_fractionROUTE Clock3.fraction_changed TO PlanetPath3.set_fractionROUTE Clock4.fraction_changed TO PlanetPath4.set_fractionROUTE PlanetPath1.value_changed TO Planet1.set_rotationROUTE PlanetPath2.value_changed TO Planet2.set_rotationROUTE PlanetPath3.value_changed TO Planet3.set_rotationROUTE PlanetPath4.value_changed TO Planet4.set_rotation

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报