读书笔记 -- VRML与Java编程技术 面节点

来源:互联网 发布:三一重工 大数据 编辑:程序博客网 时间:2024/05/19 00:53
在VRML中,面的创建通常用IndexedFaceSet节点来实现,其通常用于geometry的
域值。
IndexedFaceSet的语法如下:
IndexedFaceSet { #exposedField SFNode coord NULL
#field MFInt32 coordIndex []
#exposedField SFNode texCoord NULL
#field MFInt32 texCoordIndex []
#exposedField SFNode color NULL
#field MFInt32 colorIndex []
#field SFBool colorPerVertex TRUE
#exposedField SFNode normal NULL
#field MFInt32 normailIndex []
#field SFBool normalPerVertex TRUE
#field SFBool ccw TRUE
#field SFBool convex TRUE
#field SFBool solid TRUE
#SFFloat creaseAngle 0.0
#eventIn MFInt32 set coordIndex
#eventIn MFInt32 set texCoordIndex
#eventIn MFInt32 set colorIndex
#eventIn MFInt32 set normalIndex
}coord域列出了用来构造面的坐标,通常包含坐标节点。
coordIndex域为一张或多张面的周界列表。每一个索引对应coord域内的坐标列
表中的一个坐标。每一张周界面的连接方式按照坐标索引列表的索引值从前向
后排列的,直到索引表的末尾或者一个为-1的索引值为止。
ccw域指定了面集中的面是按顺时针方向索引还是按逆时针方向索引或者未知
方向索引。当为TRUE时,按顺时针方向索引。当为FALSE时按逆时针或者未
知方向索引。
convex域的值表示面集中的面是否都是凸面。当该值为TRUE时,VRML不需
要对这些面进行分割,当为FALSE时,浏览器将这些凹面分割城许多较少的凸
面。
solid域的值表示面集中的面是否组成一个实体。当该值为TRUE时,表示面集
中的面构成一个实体造型,此时,组成的实体造型的正面能够将组成这个实体
造型背面的所有面挡住,此时浏览器不构造其背面,否则,正面和背面都一起
构造。
creaseAngle域的域值指定了一个用弧度表示的折痕角的阀值。两个相邻面间的
夹角如果小于阀值,那么这两个面的边界会模糊,如果其夹角大于阀值,那么
这两个面的边界会保持原来的样子。
texCoord域通常指定了TextureCoordinate节点,以准确地粘贴材质图texture到IndexedFaceSet节
点所构建的表面。
texCoordIndex域指定了一列索引值,每个索引值都对应TextureCoordinate节
点中的每组坐标值。
color域的域值通常为Color节点,为面集中的平面进行着色。
colorIndex域指定了一个颜色索引列表。
colorPerVertex域指定了颜色列表中的颜色是应用到每一个平面还是每一个坐
标。当该值为TRUE时,颜色列表中的颜色应用到每一个平面的每一个坐标,
当该值为FALSE时,颜色列表中的颜色用于每一个平面。
normal域指定了对于面集中的平面进行明暗控制时的单位法向量。通常为Normal节
点。
normalIndex域值指定了一个法向量索引列表。
normalPerVertex域指定了normal列表中的法向量是应用到每一个平面还是每一
个坐标。当为TRUE时,应用到每一个坐标。
原创粉丝点击