Blender 2.9如何通过Python设置材质基础色为顶点色
Blender 2.9 Python 绑定顶点色到材质基础色解决方案
实现逻辑
Blender的Eevee/Cycles渲染器不会默认读取网格顶点色作为材质输入,需要在材质节点树中添加顶点色属性节点,并将其输出连接到 Principled BSDF 节点的基础色输入接口。
可直接复用的代码段
将以下代码插入到你创建材质、完成材质分配的逻辑之后即可:
# 启用材质节点 mymat.use_nodes = True # 获取 Principled BSDF 节点 bsdf_node = mymat.node_tree.nodes["Principled BSDF"] # 移除基础色通道原有连接(可选,按需开启) # for link in bsdf_node.inputs['Base Color'].links: # mymat.node_tree.links.remove(link) # 新建顶点色属性节点 vc_node = mymat.node_tree.nodes.new(type='ShaderNodeAttribute') # 设置要读取的顶点色层名称,默认新建的顶点色层名称为 Col vc_node.attribute_name = "Col" # 连接节点:顶点色输出 → 材质基础色输入 mymat.node_tree.links.new(vc_node.outputs["Color"], bsdf_node.inputs["Base Color"])
注意事项
- 如果你自定义了顶点色层的名称,需要将
vc_node.attribute_name的值修改为你自定义的顶点色层名称 - 如果要同时关联顶点色的Alpha通道,可以额外添加一条连接,将
vc_node.outputs["Alpha"]绑定到bsdf_node.inputs["Alpha"]
内容的提问来源于stack exchange,提问作者Sam Mulqueen
相关产品推荐
相关产品推荐

