第4章VRML-造型的空间变换_第1页
第4章VRML-造型的空间变换_第2页
第4章VRML-造型的空间变换_第3页
第4章VRML-造型的空间变换_第4页
第4章VRML-造型的空间变换_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、4.4 造型的空间变换造型的空间变换造型的空间变换造型的空间变换造型编组和素材调用造型编组和素材调用其他组节点的使用其他组节点的使用主要内容主要内容造型的空间变换造型的空间变换v Transform坐标变换节点v 用于创建一个或多个不同于默认坐标系的新坐标系。v 组节点,在此节点下可包含一个或多个子节点,所有子节点的定位中心都基于同一个坐标系的原点。这些子节点可以是Shape、Group和Transform节点。造型的空间变换造型的空间变换Transformchildren translation 0 0 0rotation 0 0 1 0scale 1 1 1scaleOrientation

2、 0 0 1 0bboxCenter 0 0 0bboxSize -1 -1 -1center 0 0 0addChildrenremoveChildren注:对造型进行平移、旋转、缩放时,无论编辑程序中各域值的排列顺序如何,浏览器默认执行顺序都为先缩放、再旋转、后平移。造型的空间变换造型的空间变换v 平移-translation域v 例4-9:使用圆锥体和圆柱体组成一个烟囱的造型。v 旋转-rotation域v 例4-10:银色十字棒造型。v 连续空间变换,Tranform节点可以进行逐级嵌套。v 例4-11:简单的钟表造型。表壳、表轴、时针、分针。角角 度度0304560901201351

3、50180弧弧 度度00.5230.7851.0471.5712.0942.3562.6183.141造型编组和素材调用造型编组和素材调用vVRML提供了一类具有编组功能的节点,它们可以将多个造型作为自己的子节点组合成一个整体,一起进行平移、旋转、缩放、外观设计、定义和调用等。v合理使用组节点,可减少工作量。vGroup, Transform, Inline, Anchor, Switch, Billboard, LOD造型编组和素材调用造型编组和素材调用v一 Group编组节点Groupchildren bboxCenter 0 0 0bboxSize -1 -1 -1addChildren

4、removeChildren造型编组和素材调用造型编组和素材调用v 二 素材调用的基本方法v 1 采用DEF节点定义及USE节点引用的方法,在本文件范围内定义和调用不需要进行改动的素材,使其成为场景中的一部分;v 2 利用Inline内联节点,从本文件范围之外的其他文件或者互联网上,调用不需要进行修改加工的素材,使其成为场景中的一部分;v 3 利用带链接功能的Anchor锚节点,将存储在本机硬盘或互联网上的素材作为一个新的完整场景调用,取代原有场景;v 4 利用PROTO语句和EXTERPROTO语句,在本文件范围内或本文件范围外及互联网上定义原型节点和外部原型节点,调用素材时可根据需要对其原

5、有的属性进行更改或赋予更多的功能。造型编组和素材调用造型编组和素材调用v三 节点的定义及引用 vDEF定义,USE引用v定义的节点只在本文件范围内有效。一旦被定义的源节点的域值进行改动,引用节点的域值也随之变化。v节点定义及引用的语法格式:v定义节点的名称及调用规则:DEF 节点名节点名 节点节点USE 节点名节点名(1)节点名由字母、数字及下划线组成,但不能以数字开头,不能包括无法印刷的ASC字符,且字母区分大小写;(2)节点名不能使用单双引号、数字运算符号民、各种括号及英镑符号。(3)节点名不能使用VRML中已定义的节点类型名以及在VRML中有特定意义的字符。造型编组和素材调用造型编组和素

6、材调用v例4-12:利用旋转嵌套,围绕Z轴,每旋转45度引用一定银色圆柱,连续引用三次,构成米字造型。造型编组和素材调用造型编组和素材调用v 四 Inline内联节点v 采用内联方法,可将复杂的场景和造型分解成各自独立的小文件,分别进行设计和高度,作为素材模块存在本地硬盘或互联网的任意位置上。Inlineurl “ ”bboxCenter 0 0 0bboxSize -1 -1 -1 例4-13:使用内联节点,将钟表造型与Return文本造型组成一个场景。造型编组和素材调用造型编组和素材调用v五 Anchor锚链接节点v该节点将存储在本机硬盘或互联网上的素材作为一个新的完整的场景进行调用,在原

7、场景中设置一个锚点造型,当浏览者点击锚点造型时,VRML浏览器即可链接到指定的素材文件,使浏览者从原场景中出来,进入到素材文件所构建的新场景中去。造型编组和素材调用造型编组和素材调用Anchorchildren description “ ”parameter url “ ”bboxCenter 0 0 0bboxSize -1 -1 -1addChildren removeChildren造型编组和素材调用造型编组和素材调用vchildren:设定场景中的锚点造型列表;vdescription:设定提示字符串;vparameter:VRML和HTML浏览器附加参数信息,是一个形如“关键词=值

8、”的字符串;vurl:设定要链接的素材文件的url地址和文件名。v例4-14:本例包括两个场景。主场景文件是一个“Red Clock”文本造型,单击文本造型可链接至子场景,即例4-13中的钟表造型场景。造型编组和素材调用造型编组和素材调用v六 原型的定义和调用v前面三类调用只适用于对素材不需要进行加工处理,原汁原味调用的情况,如果需要对素材属性进行更改或赋予更多的功能后调用,可使用PROTO原型节点或EXTERNPROTO外部原型节点,它们可定义可供修改的属性。v原型:即自定义节点。设计者可以根据需要,利用原型创建一种新的节点类型,可通过对节点类型实例化建立新节点,可以为新节点添加各种域和事件

9、。造型编组和素材调用造型编组和素材调用v 原型具有如下功能:v (1)素材调用功能。(原型可作为素材库,反复调用)v (2)节点扩展功能。v (3)动态更新和保护功能。(通过设置接口中的域和事件,对虚拟现实中造型属性进行更改或者限制更改,从而达到场景的动态更新和保护一些造型不被改动的目的)v (4)造型及动作打包功能。(VRML中标准节点均不具备行为自控能力,通过原型可将造型与交互动作、事件、脚本等VRML元素捆绑使用)v (5)网络动作功能。(原型可在当前文件中定义和反复调用,外部原型可在其他文件和网络中定义,在当前文件中反复调用,提供了跨越网络的强大功能)造型编组和素材调用造型编组和素材调

10、用PROTO nodeTypeNamefield fieldType fieldName DEFaultValueexposedField fieldType fieldName DEFaultValueeventIn eventInType eventInNameeventOut eventOutType eventOutNamenodebody #节点体,定义节点执行内容注:节点体内的节点在使用节点接口中设置的各种域及事件时,必须使用IS语句进行连接。使用IS语句可以在节点体内反复使用同一个域或事件,但是必须注意接口元素的类型一定要与引用节点中的数据、事件的类型相匹配。造型编组和素材调用造

11、型编组和素材调用v例4-15:使用PROTO语句定义一个名为Coclock的钟表原型节点,并为其设置表身颜色、表身尺寸及钟表位置三个接口域;调用原型节点时,通过设置接口域的域值,改变钟表的位置、颜色及尺寸。造型编组和素材调用造型编组和素材调用v外部原型节点的定义与使用v使用PROTO语句定义的原型节点,定义和调用必须在同一个VRML文件中运行,应用范围受到限制。v如果想从其他VRML文件或者网络中调用已经定义了的原型节点,VRML提供了EXTERNPROTO语句用来定义外部原型节点。v这样,我们可以将所有原型节点集中保存在本机或网络上的某一个VRML文件中,组成原型素材库,方便设计者利用EXT

12、ERNPROTO语句定义和调用。造型编组和素材调用造型编组和素材调用EXTERNPROTO nodeTypeNamefield fieldType fieldName exposedField fieldType fieldNameeventIn eventInType eventInNameeventOut eventOutType eventOutNameurl or urlList注:PART2:不为接口元素设定默认值。 PART3:被调用的原型节点所在的外部文件的url地址或url地址列表,置于双引号内,字母url,urlList可以省略。造型编组和素材调用造型编组和素材调用vnode

13、TypeName:一般,该名称应与所要引用的位于外部文件中的由PROTO语句定义的原型节点名相同。v方括号中的接口域,公共域,入事件,出事件应与被引用的外部文件中由PROTO语句定义的原型节点中的完全一致或根据需要取其中的一部分。v如果在指定的外部文件中包括多个PTOTO语句定义的原型节点,可用以下格式指定要调用的原型节点:v“外部文件名#原型节点名”造型编组和素材调用造型编组和素材调用v例4-16:新建一个index.wrl,并引用sample4-15.wrl中的钟表原型节点。其他组节点的使用其他组节点的使用v1.Billboard布告牌节点v无论场景如何移动,始终面向浏览者,便于观察,引起

14、人们的注意。v适用于场景提示、路标指示、布告牌、广告牌及帮助信息等。其他组节点的使用其他组节点的使用Billboardchildren axisOfRotation 0 1 0bboxCenter 0 0 0bboxSize -1 -1 -1addChildren removeChildrenaxisOfRotation:设定一个旋转轴。当用户移动的时候,Billboard节点自动地以其局部坐标系的Z轴围绕该轴旋转,从而保证布告牌造型始终面向浏览者。v 例4-17:将4-13中的“Return”文本造型设置成布告牌。其他组节点的使用其他组节点的使用v2.Switch开关节点v允许多个场景造型作

15、为子节点并列排放在组内,浏览器每次只能选择其中某一个子场景造型进行渲染。Switchchoice whichChoice -1choice:设定子节点场景造型列表;whichChoice:设定所要选择的子节点的指针序号;其他组节点的使用其他组节点的使用v例4-17:当whichChoice为0时,显示第一个文本造型“Welcome”;当whichChoice为1时,显示第二个文本造型“Color”;当whichChoice为2时,显示第一个文本造型“Red Clock”.其他组节点的使用其他组节点的使用v3. LOD细节层次控制节点v根据浏览者与造型距离的远近,选择按照不同的细致度刻画的造型。

16、LODlevel center 0 0 0rang 其他组节点的使用其他组节点的使用v level:设定细节层次列表;通常第一个子节点提供高细节造型,后面的子节点提供的造型细节描述层次下降;不同细节层次造型的选择与切换,由浏览者和造型之间距离的远近来决定。v center:设定细节层次造型的中心点坐标。v rang:浏览者与造型之间距离的列表。浏览器依据此列表选择需要显示的level域中列出的不同细节层次的造型。v 注:使用LOD,一般可为一个对象创建三个不同细节层次的造型,一般不超过五个。各层次造型创建之后,最好采用单独VRML文件形式保存,然后在LOD节点的level域中利用Inline内联节点进行引入和编组。上机练习上机练习v 上机练习三:v (1)白红两个定位点相同的球体,白球未经过缩放处理,可以作为参照物。红色球体在X轴放大2倍,Y,Z轴分别放大1.1倍,材质为半透明。观察效果。v (2)重复引用编组造型节点。将例4-12创建的米字造型用Group节点进行编组,然后作为整体造型连续三次用Transform节点进行位移调用,观察效果。v (3)使用重复引用节点的方法,为例4-11中的钟表造型的表盘配上12个刻度点。用银色小球作为小时刻度标志,每隔0.524(30度

温馨提示

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

评论

0/150

提交评论