VRML(虚拟现实建模语音)第4章组节点的使用_第1页
VRML(虚拟现实建模语音)第4章组节点的使用_第2页
VRML(虚拟现实建模语音)第4章组节点的使用_第3页
VRML(虚拟现实建模语音)第4章组节点的使用_第4页
VRML(虚拟现实建模语音)第4章组节点的使用_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第4章组节点的使用——造型分组

组节点是一类比较特殊的节点,它们每个节点中都有一个域children,包含一系列子节点形成树状分支层次,并为它的子节点定义一个坐标系。这个坐标系在父节点的坐标系中定义。组节点常指的是Group、Transform、Anchor、Billboard和Collision等节点。有时也包括Inline、LOD和Switch等节点,它们常被称为特殊组节点。本章将主要介绍Group和Transform。

4.1Group节点

节点Group是所有组节点中最基本的,也是应用非常广泛的一个节点。它没有坐标变换,这一点与一般的组节点稍有不同。它在很多情况下都用于管理节点层次。该节点的语法如下:

Group{ EventinMFNodeaddchildren EventinMFNoderemovechildren ExposedfieldMFNodechildren[] FieldSFVec3fbboxcenter000#(-∞,+∞) FieldSFVec3fbboxsize–1–1–1#(0,+∞) }4.1Group节点字段说明:Children该字段可以包含多个群节点(GroupingNodes)或子节点(ChildNode)

Bboxcenter该字段的功能是定义几何中心点的位置,若把所有包含在群节点中的节点用箱形体包含起来,所定义的几何中心位置就是这个箱形体的几何中心。它的初始值是(000),与三维坐标的原点重合。

Bboxsize该字段的功能是定义上述箱形体的尺寸,三个值分别对应X轴、Y轴、Z轴,它的默认值是(-1,-1,-1),代表VRML浏览器将自动的定义出箱形体的尺寸。

4.1Group节点注:bboxCenter和bboxSize字段可被用来定义组中对象的最大箱形体。箱形体必须大到能包容组中所有的子节点,甚至

包括光、声、雾等子节点的作用。如果该Group节点的大小由于子节点的运动而随时间变化,箱形体应大到能包容该组的所有可能的活动。 事件说明:

Addchildren该事件是一个eventin事件,它的功能是增加指定节点到这个群节点中的children字段中,如果该节点已在children字段中,该事件被忽略。Removechildren该事件是一个eventin事件,它的功能是删除在群节点中的children字段所包含的指定节点,如果该节点不在children字段中,该事件被忽略。4.2Transform节点

组节点Transform为子节点提供了相对于自身的局部坐标系变换后的新坐标系,其参数在其自身的局部坐标系中定义,并不受自身坐标变换的影响。该节点的语法如下:

Transform{ EventinMFNodeaddchildren EventinMFNoderemovechildren ExposedfieldMFNodechildren[] FieldSFVec3fbboxcenter000#(-∞,+∞) FieldSFVec3fbboxsize-1–1–1#(0,+∞)or–1–1–1 ExposedfieldSFRotationrotation0010#(-∞,+∞) ExposedfieldSFVec3fcenter000#(-∞,+∞)4.2Transform节点 ExposedfieldSFVec3fscale111#(0,+∞) ExposedfieldSFRotationscaleorientation0010#(-∞,+∞) ExposedfieldSFVec3ftranslation000#(-∞,+∞)} 字段说明:前六个字段参见前面。center定义出缩放(scale字段)和旋转(rotation字段)功能的原点,默认值为三维坐标的原点(0,0,0)。scale该字段是对几何对象进行缩放,可以单独对X、Y、Z任一方向的尺寸进行缩放。小于1则代表缩小,大于1则代表放大,等于1则代表不变,默认值为(1,1,1),表示维持原本的尺寸。

4.2Transform节点scaleorientation该字段的功能是对旋转方向进行缩放,它必须在scale字段之后,在定义出放大尺寸后,再对几何对象所选择的旋转方向进行缩放。前三个值用来定义旋转轴,最后一个值为旋转角度,单位为弧度(radians),这4个值的意义和rotation字段相同。和

scale字段的不同体现在它是先旋转再缩放,再旋转回来。translation该字段的功能是将几何对象的几何中心位置从原本的三维坐标原点移到想要的位置。三个值分别是X、Y、Z方向,默认值为(0,0,0)。

4.3引入型的群节点—Inline

Inline节点是一个群节点,也可以包含在其它节点之下,用于在VRML程序下引入其它的VRML文件。如果一个VRML文件过大,将不容易管理和维护,若可以将一个很大的VRML文件拆成几个小文件,再使用Inline节点引入这些小文件,主要文件的内容会显的更清晰,更容易管理。Inline节点也可以从其它网站中引入VRML文件,这样可以分工合作,每个人在自己的计算机上完成自己的工作,然后放在网站上,再由一个负责人从各网站上引入VRML文件,完成欲创建的虚拟现实。

4.3引入型的群节点—InlineInline{ ExposedfieldMFStringurl[] FieldSFVec3fbboxcenter000#(-∞,+∞) FieldSFVec3fbboxsize-1–1–1#(0,+∞)or–1–1–1}字段说明:

Url该字段的功能是输入所要引入的VRML文件名和位置(包括网址),如果多个URL被说明,则浏览器将按先后顺序装载第一个能找到的VRML文件。

Bboxcenter和bboxsize参见前面。

4.4选择型的群节点—Switch在VRML中,Switch节点是一个群节点,可以在这个节点里创建不同的子节点,但在同一时间里只会出现所选择的子节点,所以Switch节点增加了VRML程序的交互性,可以让用户拥有选择的权利。

Switch{ ExposedfieldMFNodechoice[] ExposedfieldSFInt32whichchoice-1#[-1,+∞] }4.4选择型的群节点—Switch

字段说明:

Choice该字段包括了Switch群节点的所有子节点,每个节点都有一个指针,第一个子节点的指针为0。

Whichchoice该字段的功能是选择要执行choice字段中的哪个子节点。0代表第1个子节点,1代表第2个子节点,以此类推。默认值是-1,表示不选择任何子节点。

Switch群节点激活choice字段中指定的零个或一个子节点。非活动子节点被忽略。但是,无论是否被激活,Switch节点的所有子节点都对事件作出反应。

4.5广告牌群节点--BillboardBillboard节点也是一个群节点,在这个节点下的子节点所构建的虚拟对象的正面会永远自动的面对观看者,不管观看者如何走动或旋转。

Billboard{ EventinMFNodeaddchildren EventinMFNoderemovechildren ExposedfieldMFNodechildren[] FieldSFVec3fbboxcenter000#(-∞,+∞) FieldSFVec3fbboxsize-1–1–1#(0,+∞)or–1–1–1 ExposedfieldSFVec3faxisofrotation010#(-∞,+∞) }4.5广告牌群节点--Billboard 字段说明:

前五个字段参考前面。

Axisofrotation该字段的功能是选定旋转轴在Billboard节点中的局域坐标系统。(1,0,0)表示绕X轴旋转,(0,1,0)表示绕Y轴旋转,(0,0,1)表示绕Z轴旋转,(0,0,0)将允许Billboard节点中的物体任意旋转(绕任意轴)以面向浏览者。对于其它axisOfRotation的值,Billboard节点中的物体将只绕给定轴旋转。

4.6超级链结的节点-------Anchors它是一个群节点。在Anchor群节点下面的子节点所创建的虚拟对象叫做Anchorshape.单击这个Anchorshape将会进行超链接。

Anchor{ EventinMFNodeaddchildren EventinMFNoderemovechildren ExposedfieldMFNodechildren[] Exposedfield SFStringdescription “” Exposedfield MFStringparameter [] ExposedfieldMFStringurl[] FieldSFVec3fbboxcenter000#(-∞,+∞) FieldSFVec3fbboxsize-1–1–1#(0,+∞)or–1–1–1 }4.6超级链结的节点-------Anchors字段说明:

Description:给用户一个友善的提示:浏览器可连结的位置。

Parameter:给VRML或HTML浏览器提供一个额外的信息。这些信息是一连串的字符串,格式是keyword=value。例如,一些浏览器允许链接在HTML中的某一个特定框架(frame),则parameter字段可以表示如下:

Parameter[“target=name_of_frame”]url:输入要进行超链结的VRML文件或其他可在浏览器上运行的文件。

其余字段参考前面字段

4.7分级型的群节点----LOD用于对相同的景物做出不同精细程度的版本。构建VRML虚拟现实时,必须在浏览器的运行速度和图形的真实性上有所平衡,因为如果要的f越真实,VRML文件一定越大,浏览器不但要耗费更多的时间下载,还要花费更多中央处理器的性能来构建这个虚拟现实。这个时候LOD的概念就出现了,可以对相同的景物做出不同精细程度的版本,需要比较接近景物时就选用比较精细的版本,距离景物比较远时就选用比较粗糙的版本,分级程度完全根据观看者与景物的相对距离而定,这样便可以大大提高浏览器的性能,这也是LOD节点的目的。

4.7分级型的群节点----LOD

LOD{ Exposedfield MFNodelevel[] Field SFVec3f center 000 #(-∞,+∞) Field MFFloat range [] #(0,+∞) }字段

Level:

该字段的功能是可以放置节点,这些节点表示分别以不同详细程度所描述的相同物件。描述越详细的版本节点,放置于越前面的位置。Center:说明LOD节点的子节点的几何中心点位置,默认值为(0,0,0)。Range:

定义观看者和对象之间距离的范围值大小,作为显示不同版本节点的依据。假如有几个不同的版本,就会有n-1个不同的范围值在range字段。

4.8碰撞传感器节点-------Collision是一个群节点,它类似Group节点,可以有多个子节点在Children的字段里,但是它又有传感器节点的性质。

Collision{ EventinMFNodeaddchildren EventinMFNoderemovechildren ExposedfieldMFNodechildren[] Exposedfield SFBool collide TRUE FieldSFVec3fbboxcenter000#(-∞,+∞) FieldSFVec3fbboxsize-1–1–1#(0,+∞)or–1–1–1 Field SFNode proxy NULL EventOut SFTime collideTime}4.8碰撞传感器节点-------Collision主要功能是感测观看者和虚拟对象非常接近并且几乎要碰撞在一起时的现象,就像一个人跑去撞墙,在他撞到墙之后,一定会有所反应,通常的反应是大叫一声,可以利用此节点去感应观看者撞到某个虚拟对象时,使用route提交eventOut事件启动一个声音节点,发出声音,让虚拟现实有拟人化的效果。Collision组节点允许对某些物体关闭碰撞检测,或者用一个简单形状的替代物加快检测的速度。缺省的情况下,认为场景中的所有物体都有可能被碰撞。如果在一个场景中没有指定Collision节点,在进行浏览时浏览器

温馨提示

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

评论

0/150

提交评论