Ich versuche, mehrere Bilder über das Python-Skript im Blender zu rendern und zu speichern. Ich kann das Bild über die Blender-GUI rendern und speichern, aber ich möchte alles durch mein Skript machen, da ich verschachtelte Schleifen benutze und mehrere Bilder speichern muss. Ich kann das Bild rendern, und ich schätze, das Bild wird gespeichert, wenn die Ausgabe erfolgreich ist. Ich bin mir jedoch nicht sicher, wo es gespeichert wird und wenn ich versuche, den Dateipfad zu bearbeiten, wird mir der Fehler des Kontexts als falsch angezeigt.
Oto co zrobiłem w Blender 2.63
:
bpy.data.scenes['Scene'].render.filepath = '/home/user/Documents/image.jpg'
bpy.ops.render.render( write_still=True )
Robi bis tworzenie panoramy VR (seria obrazów obiektów wokół niej). Ich skończyłem z tym algorytmem:
Empty
i ustaw jego pozycję i obrót na tożsamość (pozycja: 0, 0, 0
, rotation: 0, 0, 0
)Musisz skończyć z wieloma obrazkami (zdefiniowane przez step_count
) wokół twojego obiektu w katalogu /home/user/VR
.
cam = bpy.data.objects['Camera']
Origin = bpy.data.objects['Empty']
step_count = 32
for step in range(0, step_count):
Origin.rotation_euler[2] = radians(step * (360.0 / step_count))
bpy.data.scenes["Scene"].render.filepath = '/home/user/VR/vr_shot_%d.jpg' % step
bpy.ops.render.render( write_still=True )
etwas wie das:
import bpy
bpy.context.scene.render.filepath = 'pathToOutputImage'
bpy.context.scene.render.resolution_x = w #perhaps set resolution in code
bpy.context.scene.render.resolution_y = h
bpy.ops.render.render()
Sie müssen Folgendes tun. Die Variable i
in der zweiten Zeile nach der Schleife for
ist der Schleifenindex der Dateischleife.
Ich habe bestätigt, dass dies funktioniert, während Sie in der Konsole und auch von der Befehlszeile aus arbeiten. Vergessen Sie nicht, die Objekte nach dem Rendern einer Datei zu entfernen. (Der Befehl remove wird hier nicht angegeben, da er nicht generisch ist. In diesem Befehl sind einige bestimmte Argumente erforderlich, wenn das Objekt Verknüpfungen enthält.)
for area in bpy.context.screen.areas:
if area.type == 'VIEW_3D':
area.spaces[0].viewport_shade = 'RENDERED'
bpy.context.scene.render.image_settings.file_format='JPEG'
bpy.context.scene.render.filepath = ".pic%0.2d.jpg"%i
bpy.ops.render.render(use_viewport = True, write_still=True)