青衣白鹤 2007-11-5 18:53
VRML IndexedFaceSet节点介绍
此节点代表一个3维形体 -- 由当前坐标上的点所构成的面组成
IndexedFaceSet用它的coordIndex域内的值来描述这些多边形的面
值-1表示当前的面已经定义结束,下面要定义的是一个新面
这些面的顶点通过当前的变换矩阵(transformation matrix)进行变换
对待当前的材质约束(material binding)和常态约束(normal binding)的原则如下
PER_PART和PER_FACE约束描述了每个面的材质(material)和常态(normal)
PER_VERTEX描述了每个节点的材质(material)和常态(normal)
相应的_INDEXED约束是一样的,但用的是materialIndex或normalIndex的值
默认的材质约束为OVERALL
默认的常态约束为PER_VERTEX_INDEXED
如果当前的常态描述不足,则节点的常态自动产生
明确的纹理坐标(由TextureCoordinate2定义)可以约束给由textureCoordindex域中的值描述的形体的一个节点
对于所有基于顶点的形体,如果只有当前纹理(current texture)而没有描述相应纹理坐标的话,那么就要用此形体约束框(bound box)来计算默认的纹理坐标映射
约束框中长度最长的维定义了S坐标,第二长的维定义了T坐标
S坐标值的范围从0到1,从一个约束框的末尾到另一个约束框
T坐标的范围从0到第二长的维与最长维的比率之间
确使coordIndex、materialIndex、normalIndex和textureCoordIndex域中所包含的值对于当前状态来说是合法的,否则会发生错误 。
[b]IndexedFaceSet {[/b]
[i]coordIndex 0 # MFLong[/i]
[i]materialIndex -1 # MFLong[/i]
[i]normalIndex -1 # MFLong[/i]
[i]textureCoordIndex -1 # MFLong[/i]
[b]}[/b]