J'essaie de rendre et de sauvegarder plusieurs images à l'aide d'un script Python dans Blender. Je sais comment rendre et enregistrer l'image à l'aide de l'interface graphique de Blender, mais je souhaite le faire tout au long de mon script, car j'utilise un ensemble de boucles imbriquées et je dois enregistrer plusieurs images. Je suis capable de restituer l'image et je suppose enregistrer l'image avec la sortie réussie. Mais je ne suis pas sûr où il enregistre et quand j'essaye de modifier le chemin du fichier, cela me donne l'erreur que le contexte est incorrect.
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 à tworzenie panoramy VR (contenu de la collection de fichiers). Je 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 )
quelque chose comme ça:
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()
Vous devrez faire ce qui suit. La i
dans la deuxième ligne après la boucle for
est l'index de la boucle de la boucle de fichier.
J'ai vérifié que cela fonctionne lors de l'exécution dans la console et également à partir de la ligne de commande. N'oubliez pas de supprimer les objets après avoir rendu un fichier. (La commande remove n'est pas donnée ici car elle n'est pas générique. Quelques arguments spécifiques seront nécessaires dans cette commande si cet objet a des liens)
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)