颜色节点
着色 方式分为两种:一是利用Material材质节点的 emissiveColor 的域值添加颜色。二是利用点集和线集的color域的Color颜色节点。
注意不能使用diffuseColor的域值添加颜色,因它不受光源影响,没有光源的情况下,浏览器显示为黑色。 Color颜色节点优于Material材质节点的 emissiveColor 的设置。
点集节点
PointSet{
#color域的域值用于设定在点集中用于对点进行着色的颜色列表。该域值通常为Color节点。
exposedField SFNode color NULL
}
线集节点
IndexedLineSet{
#color域的域值用于设定在面集中对平面进行着色的颜色列表。
exposedField SFNode color NULL
#colorIndex域的域值用于设定一个颜色索引列表,用来指定要使用的颜色。其域值必须大于或等于0,且为整型。该域值的默认值为空。
field MFInt32 colorIndex [ ]
#colorPerVertex域的域值用于设定Color节点颜色列表中的颜色是用于折线还是用于折线的坐标索引。当该域值为TRUE时,则颜色列表中的颜色用于每一个折线的每一个坐标索引,当域值为FALSE时,则表示用于每一个折线。
field SFBool colorPerVertex TRUE
}
例子:
#VRML V2.0 utf8
Shape{
geometry IndexedLineSet{ #线集节点
coord Coordinate { #坐标节点
point[
0 3 0,3 0 0,0 -3 0, -3 0 0, 0 0 3
] #端点坐标
}
coordIndex[
0,3,4,-1, 3,2,4,-1, 2,1,4,-1,1,0,4
] #线段连接顺序索引
colorPerVertex TRUE #着色方式基于端点
color Color{ #颜色节点
color[
1 0 0, 0 1 0, 1 1 0, 1 0 1, 1 1 1
]
}
}
}