节点总共分三部分:材质节点,环境节点和合成节点。
节点的开发很简单,先打开一个消息界面,再打开一个着色器编辑器界面,在着色器编辑器内创建一个节点
通过消息界面知道节点的type
最后转换成代码
下面我用代码创建了一个材质,将材质设定成红色
test_material = bpy.data.materials.new("test_material")
test_material.use_nodes = True
test_material.node_tree.nodes.clear()
nodes = test_material.node_tree.nodes
links = test_material.node_tree.links
bsdf_principled_node = nodes.new("ShaderNodeBsdfPrincipled")
bsdf_principled_node.location = (-149.77256774902344, 247.55374145507812)
bsdf_principled_node.select = False
bsdf_principled_node.inputs[0].default_value = (1, 0, 0, 1)
output_material_node = nodes.new("ShaderNodeOutputMaterial")
output_material_node.location = (317.0647888183594, 397.3779296875)
output_material_node.select = False
links.new(bsdf_principled_node.outputs[0], output_material_node.inputs[0])
inputs代表的是左边的点,outputs代表右边的点,从0开始算,通过links可以把两个点进行连接
合成节点和环境节点的开发都是大同小异的,节点都是使用node_tree下的nodes和links进行开发的,只要获得node_tree就可以了
合成节点的node_tree
node_tree = bpy.context.scene.node_tree
环境节点的node_tree
node_tree = bpy.context.scene.world.node_tree
当然在使用前先判断use_nodes是否是True
bpy.context.scene.use_nodes
bpy.context.scene.world.use_nodes