Table of Contents
import bpy
path_to_file=path_to_obj_dir+"/"+item
bpy.ops.import_scene.obj(filepath=path_to_file)
# print file name
obj_name=os.path.splitext(item)[0]
print(obj_name)
mesh_name="object-to-select"
obj=bpy.context.scene.objects[mesh_name]
More details: Principled BSDF - Blender Manual
def newMaterial(id):
mat=bpy.data.materials.get(id)
if mat is None:
mat=bpy.data.material(name=id)
mat.use_nodes=True
if mat.node_tree:
mat.node_tree.links.clear()
mat.node_tree.nodes.clear()
return mat
def newShader(id,r,g,b,specular=0,roughness=0,transmission=0):
mat=newMaterial(id)
nodes=mat.node_tree.nodes
links=mat.node_tree.links
output=nodes.new(type='ShaderNodeOutputMaterial')
shader=nodes.new(type='ShaderNodeBsdfPrincipled')
nodes["Principled BSDF"].inputs[0].default_value=(r,g,b,1)
nodes["Principled BSDF"].inputs[7].default_value=specular
nodes["Principled BSDF"].inputs[9].default_value=roughness
nodes["Principled BSDF"].inputs[17].default_value=transmission
links.new(shader.outputs[0],output.inputs[0])
return mat
Mix=mat.node_tree.nodes.new("ShaderNodeMixRGB")
node_a, node_b)mat.node_tree.links.new(node_a.outputs[0],node_b.inputs[0])
obj and Add a New Material matobj.data.materials.clear()
obj.data.materials.append(mat)
More details: Keyframe(bpy_struct) - Blender Python API
current_frame=1
obj.keyframe_insert(data_path="location",frame=current_frame)
Being displayed in Blender viewport
obj.hide_viewport=True
obj.hide_viewport=False
Being rendered when render
obj.hide_render=True
obj.hide_render=False