blender 错误: ‘Material‘ object has no attribute ‘texture_slots‘

### 报错代码

    if ".obj" in file_dir:
        bpy.ops.import_scene.obj(filepath=file_dir)
        ob = bpy.context.selected_objects[0]
        if len(ob.data.materials) == 0:
            mat_name = "Material"
            mat = bpy.data.materials.new(name=mat_name)
            ob.data.materials.append(mat)
        mat = ob.data.materials[0]
        slot = mat.texture_slots.add()

这是因为在较新的Blender版本中,材质的纹理槽已被弃用。

取而代之的是使用节点编辑器来创建和管理材质纹理。

### 解决



if ".obj" in file_dir:
    bpy.ops.import_scene.obj(filepath=file_dir)
    ob = bpy.context.selected_objects[0]
    if len(ob.data.materials) == 0:
        mat_name = "Material"
        mat = bpy.data.materials.new(name=mat_name)
        ob.data.materials.append(mat)
    mat = ob.data.materials[0]
    
    # 创建纹理节点
    tex_node = mat.node_tree.nodes.new('ShaderNodeTexImage')
    
    # 创建输出节点
    output_node = mat.node_tree.nodes.new('ShaderNodeOutputMaterial')
    
    # 连接节点
    mat.node_tree.links.new(tex_node.outputs['Color'], 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值