在 V2 API 中处理材质时,了解材质和材质节点之间的区别非常重要。vrdMaterial 不是从 vrdNode 派生的;因此,它不能显示在场景图形中。
它不同于灯光或摄影机,后两者都是从 vrdNode 派生的。这种差异在 UI 中不直接可见。材质编辑器以层次图形结构呈现材质。但是,这种可视化表示并不能反映真实的结构。
材质编辑器图形包含 vrdMaterialNodes。这些节点保存实际材质。
为了说明这一点,下一个示例创建一个组和一个塑料材质,然后将材质移动到该组下。我们也可以先创建组,并在 createMaterial() 中将其用作 materialGroup 参数。
Move a material under group
# Create the material
mat1 = vrMaterialService.createMaterial("plastic1", vrMaterialTypes.Plastic)
# Create the group (it will automatically get a unique name, but we rename it afterwards)
group1 = vrMaterialService.createMaterialGroup()
group1.setName("matgroup")
# Access the vrdMaterialNode that has been automatically created for the plastic material
mat1Node = vrMaterialService.findMaterialNode(mat1)
# Hierarchy modifications on vrdNodes are done by manipulating it's children class member
group1.children.append(mat1Node)
# Now the material will appear under the group. We can also move it back out to the top level
vrMaterialService.getMaterialRoot().children.append(mat1Node)
组节点的层次操作可以通过操纵其子类成员来执行。有关更多文档,另请参见 vrdNodeList。