Background节点 |
||
background { |
||
groundColor | [ ] | # exposed field MFColor |
groundangle | [ ] | # exposed field MFFloat |
skyColor | [0 0 0] | # exposed field MFColor |
skyangle | [ ] | # exposed field MFFloat |
frontUrl | " " | # exposed field MFString |
backUrl | " " | # exposed field MFString |
rightUrl | " " | # exposed field MFString |
leftUrl | " " | # exposed field MFString |
topUrl | " " | # exposed field MFString |
bottomUrl | " " | # exposed field MFString |
} | ||
|
||
域 |
||
groundColor | 用于指定地面球体着色的RGB值。可以设定一系列颜色以产生按水平分层渐变的效果,其中所列出的第一个值是指竖值向下看到的那个点的颜色。 groundColor域所含的数据个数应该比groundAngle的多一个。 |
|
groundAngle | 指定一系列转角值(浮点数),以对应上述groundColor域内给出的一系列颜色值。取值单位为rad。其中,第一个值为0,即垂直向下的一点(相当于“南极”),隐含的定为缺升值,不必写出,因而列出的颜色值比列出的转角值多一个。由此,所列出的第一个颜色值对应于缺省的转角值0。所赋转角值中,最后一个表示地平线标高角。它规定了地面色组的交接处。一般来说,这个角度就是1.57rad(或90º)。从该处开始一直延续到∏(垂直向上)为天空色组显示区域。 如果未赋groundColor,则不必赋转角值。 |
|
skyColor | 用于指定天空球体着色的RGB值。所列出的第一个值是当竖直向上看时该点的颜色。skyColor域所含数据的个数应该比skyColor的多一个。 | |
skyAngle | 对应于天空颜色值,给出一组转角值(浮点数,取值单位rad)。在本域内隐含的规定起始点为0rad(处于垂直向上的位置),而将终点隐含的规定为∏(处于垂直向下的位置)。如果最后一个值小于∏,则最后的skyColor被用来填充天空球体的剩余部分(从最后一个skyAngle到∏的范围)。 | |
frontUrl,backUrl, rightUrl,leftUrl, topUrl,bottomUrl |
分别指定将被映射到空间立方体各个面上的图像。该空间立方体的六个面形成了一组包围世界中所有几何体的全景图像。映射的图像多为一些山脉、摩天大楼或云彩等远景。 | |
事件 | ||
set_bind | eventIn
SFBool 指定此事件为TRUE可使该Background节点处于激活状态。 |
|
isBound | eventOut
SFBool 指明该背景节点处于激活状态(TRUE)或非激活状态(FALSE)。 |
|
说明 | ||
Background节点可用于控制VRML世界中天空和地面的颜色,指定一组全景图像放置在所有需显示的几何形体周围和地面、天空之间。 VRML文件中的第一个Background节点可作为初始背景,而其它的Background节点在接收到set_bind事件后才显示。 Background节点可以是任意组节点的子节点,它在当前坐标系中构造背景。但是背景仅受坐标系旋转变化的影响。而不受平移或缩放变换的影响。浏览着永远不可能靠近背景,但是可以转到不同角度去观察全景图像的不同侧面,而且可以向上或向下观察地面和天空的同心环(如果可见的话)。 从概念上来说地面和天空背景由一个半径无限大的球面构成,光滑递进变化的地面颜色和天空颜色涂画在球面上。可能有一些浏览器用一个立方体来代替这个球面来显示背景。 全景图像的透明度值可以决定透过全景图像是否可看到地面颜色和天空颜色。一般地,并不指定topUrl和bottomUrl图像,从而可使地面和天空透过全景突现。即它的四个图像可以描绘山脉或者其它远景。缺省情况下,没有全景图像。 浏览器保存一个Background节点栈。栈顶节点是处于激活状态的节点。给Background节点的set_bind输入事件赋TRUE值,就可将此Background节点压至栈顶,这新被激活的Background节点的背景颜色和全景图像将取代老的背景图像。若给背景节点的set_bind事件赋FALSE值,就可将该背景节点弹处,在栈中紧接其下的背景节点成为激活节点。如果堆栈已空则使用缺省的Background节点。 |