创建纯色遮盖材质。
output_node = nodes.new(type="ShaderNodeOutputMaterial")
diffuse_node = nodes.new(type="ShaderNodeBsdfDiffuse")
diffuse_node.inputs["Color"].default_value = (0, 0, 1, 1) # 纯蓝色
blue_mask_shader.node_tree.links.new(diffuse_node.outputs["BSDF"], output_node.inputs["Surface"])
output_node.inputs["Surface"])
# 获取所有物体
objects = [obj for obj in bpy.context.scene.objects if obj.type == "MESH"]
original_materials = {}
for obj in objects:
original_material = obj.data.materials[0]
original_materials[obj.name] = original_material
材质只是把表面颜色改了,材质纹理还在。
output_node = nodes.new(type="ShaderNodeOutputMaterial")
principled_node = nodes.new(type="ShaderNodeBsdfPrincipled")
principled_node.inputs["Base Color"].default_value = (0, 0, 1, 1) # 纯蓝色
blue_mask_shader.node_tree.links.new(principled_node.outputs["BSDF"],