skyAngle [1.309,1.571]
groundColor [0.1 0.0 0.0,0.4 0.25 0.2,0.6 0.6 0.6]
groundAngle [1.309,1.571]
}
DirectionalLight节点是用来设置平行光的照射方向的,其中的direction指定了一个三元值来设置方向,下面的例子中所设定的方向为光线沿着Y轴负方向照射。相当于光线是从顶部照射下来的。
DirectionalLight {
direction 0 -1 0
}
NavigationInfo节点是用来定义导航信息的,type域可以定义为飞行FLY,行走WALK等方式,speed域设置观察着在场景中畅游的速度,单位为米每秒。Headlight域指明是否浏览器要将观察者的头灯打开。头灯是一束指向用户正在观看方向的有向光。AvatarSize域指定一些距离参数,这些参数决定了在考虑碰撞检测和视点随地形起伏的用户可移动范围。该域的第一个只是碰撞被探测出以前用户的位置与一个碰撞几何体间允许的距离;第二个只是视点与地面间应保持的高度;第三个只是视点可以跨过得最高障碍物的高度。公共域avatarSize值描述了观察者替身的大小特性。如:
NavigationInfo{
type "FLY"
speed 1.0
headlight FALSE
avatarSize [0.25,3.2,3.0]
}
Transform节点是一个组节点,该节点包括一个子节点的列表。这些子节点可以是Shape节点、其他Group节点或Transform节点。Translation用来指定造型的位置,children域是指定受该节点的变换影响的子节点。这个节点是整个程序设计中的基础节点,几乎每一个模型的建立都用到了Transform,因此,对Transform的灵活运用尤为重要。下面的例子使用Transform节点设置地面。
Transform {
translation 0 -24 0
children[
Shape{
appearance Appearance{
material Material {diffuseColor 0.4 0.25 0.2,}
}
geometry Box {size 400 48 400} } ] }
Viewpoint节点是视点定义节点,定义了处于局部坐标系中的一个指定位置,用户可以从该点来观察场景。Position用来设置视点的位置,它是一个三元值,jump域决定了视点的类型,即跳跃型的和飞跳跃型的。Orientation域是一个四元值,前三个值指定了视点的旋转轴,第四个值说明了旋转角度的正负。Description域的值指定了一个用于描述视点的文本串。下面是一个关于视点aa的例子。
DEF aa Viewpoint {
position 25 5 70
jump FALSE
orientation 0 1 0 0.4
description "aa"
}
在VRML编程中,Group节点也是一个很重要的节点。Group节点提供了最简单的节点编组,可以包含任意数目的子节点,与一个没有转换域的Transform节点相当。该节点与Transform节点一样,也有一个children域。它用来收集节点和创建不需要实施变幻的层次结构。似乎有了Transform节点,Group节点并没有什么用处。但有时在对一个整体进行操作时,以Transform节点组织的整体相比Group节点组织的整体并不能显示出优势。如果在使用传感器或插补器节点时,祖作为一个整体,可以使用DEF来给它定义一个名称,并且在VRML文件中使用USE重复的引用。
一个组可以具有任意数目的成员,成为子节点。既可以是造型以可以是其他包含造型和组的足。包含子节点的组节点被称为父节点。因为组节点可以其他的组,一个组的父节点可能是一个更高一级组的子节点。高级组的父节点可以是一个更高级组的子节点。从此上溯直到最高级父节点,称为根节点。造型可以组织在一起来创建更大、更复杂的造型。由于Group节点和Transform节点很相似,在这里就不再举例子了。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机虚拟现实技术的应用---基于VRML技术的城市之旅(12)在线全文阅读。
相关推荐: