Il s'agit d'un test avec blender, python, couleur de la lumière d'arrière-plan et spécification hexadécimale RVB. La lumière de fond et trois projecteurs éclairent le cube. Des exemples de couleurs sont aigue-marine # 7fffd4, papayawhip # ffefd5 powderblue # b0e0e6 darkkhaki # bdb76b Impression que la zone peut être utilisée. Aujourd'hui, il n'y a pas de mouvement de caméra et seulement des images fixes sans vidéos.
Des trois images, celle du haut correspond à 0,1 fois la lumière d'arrière-plan, la seconde à 0,9 fois et la troisième à 0,5 fois.
import bpy
# ========= DELETE ALL mesh, light, camera =========
for item in bpy.data.objects:
bpy.data.objects.remove(item)
# =========
def hex_to_rgb( hex_value ):
b = (hex_value & 0xFF) / 255.0
g = ((hex_value >> 8) & 0xFF) / 255.0
r = ((hex_value >> 16) & 0xFF) / 255.0
return r, g, b
h = 0xb0e0e6
# aquamarine #7fffd4, papayawhip #ffefd5 powderblue #b0e0e6 darkkhaki #bdb76b
#bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[0].default_value = (R, G, B, 1)
bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[0].default_value = (*hex_to_rgb(h), 1)
bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[1].default_value = 0.5
for i in range(5):
for j in range(5):
for k in range(5):
bpy.ops.mesh.primitive_cube_add(size=0.5, enter_editmode=False, align='WORLD', location=(i, j, k), scale=(1, 1, 1))
obj = bpy.context.view_layer.objects.active
mat = bpy.data.materials.new('Cube')
r1=0.1+ 0.15*i
g1=0.1+ 0.15*j
b1=0.1+ 0.15*k
mat.diffuse_color = (r1, g1, b1, 0) #====== random BROWN COLOR
obj.data.materials.append(mat)
# new lamps ( stack overflow Can you add a light source in blender using python)
# =============="light_spot3"
# create light datablock, set attributes
light_data = bpy.data.lights.new(name="light_spot3", type='SPOT')
light_data.energy = 2000
# create new object with our light datablock
light_object = bpy.data.objects.new(name="light_spot3", object_data=light_data)
# link light object
bpy.context.collection.objects.link(light_object)
# make it active
bpy.context.view_layer.objects.active = light_object
#change location
light_object.location = (2, -2, 3)
light_object.delta_rotation_euler = (1.6, 0, 0) #Regardez droit vers le bas à zéro zéro zéro.
# update scene, if needed
dg = bpy.context.evaluated_depsgraph_get()
dg.update()
# =============="light_spot2"
# create light datablock, set attributes
light_data = bpy.data.lights.new(name="light_spot2", type='SPOT')
light_data.energy = 2000
# create new object with our light datablock
light_object = bpy.data.objects.new(name="light_spot2", object_data=light_data)
# link light object
bpy.context.collection.objects.link(light_object)
# make it active
bpy.context.view_layer.objects.active = light_object
#change location
light_object.location = (2, -4, 8)
light_object.delta_rotation_euler = (1.5, 0, 0) #Regardez droit vers le bas à zéro zéro zéro.
# update scene, if needed
dg = bpy.context.evaluated_depsgraph_get()
dg.update()
# ============== "light_spot1"
# create light datablock, set attributes
light_data = bpy.data.lights.new(name="light_spot1", type='SPOT')
light_data.energy = 3000
# create new object with our light datablock
light_object1 = bpy.data.objects.new(name="light_spot1", object_data=light_data)
# link light object
bpy.context.collection.objects.link(light_object1)
# make it active
bpy.context.view_layer.objects.active = light_object1
#change location
light_object1.location = (5, -5, 8)
light_object1.delta_rotation_euler = (1.3, 0, 0.3) #Regardez droit vers le bas à zéro zéro zéro.
# update scene, if needed
dg = bpy.context.evaluated_depsgraph_get()
dg.update()
# ================
bpy.ops.object.camera_add(enter_editmode=False, align='VIEW', location=(6, -6, 11), rotation=(45/180*3.14, -15/180*3.14, 45/180*3.14))
Recommended Posts