In today's tutorial I will show you how to create a sphere and how to add a material to it.
The source code is very simple with two functions one is for the sphere and the second one is the material of this, see:
import bpy
def create_sphere(radius, distance_to_center, obj_name):
obj = bpy.ops.mesh.primitive_uv_sphere_add(
radius=radius,
location=(distance_to_center, 0, 0),
scale=(1, 1, 1)
)
# rename the object
bpy.context.object.name = obj_name
# return the object reference
return bpy.context.object
def create_emission_shader(color, strength, mat_name):
# create a new material shader
mat = bpy.data.materials.new(mat_name)
# enable the node-graph edition mode
mat.use_nodes = True
# clear all starter nodes
nodes = mat.node_tree.nodes
nodes.clear()
# add the Emission node
node_emission = nodes.new(type="ShaderNodeEmission")
# (input[0] is the color)
node_emission.inputs[0].default_value = color
# (input[1] is the strength)
node_emission.inputs[1].default_value = strength
# add the Output node
node_output = nodes.new(type="ShaderNodeOutputMaterial")
# link the two nodes
links = mat.node_tree.links
link = links.new(node_emission.outputs[0], node_output.inputs[0])
# return the material reference
return mat
n = 1
r = 1.0
d = 1.5
sphere001 = create_sphere(r, d, "Sphere-{:02d}".format(n))
sphere001.data.materials.append(
create_emission_shader(
(1, 1, 1, 1), 100, "SphereMat001"
)
)