rendre et sauvegarder des images grâce à Blender python

j'essaie de rendre et de sauvegarder plusieurs images à travers le script python dans blender. Je sais comment rendre et sauvegarder l'image à travers L'interface graphique Blender mais je veux le faire à travers mon script car j'utilise un ensemble de boucles imbriquées et j'ai besoin de sauvegarder plusieurs images. Je suis capable de rendre l'image et je suppose sauver l'image avec la sortie étant réussie. Mais je ne suis pas sûr de l'endroit où il enregistre et quand j'essaie de modifier le chemin d'accès il me donne l'erreur du contexte incorrect.

22
demandé sur user2047506 2013-02-20 18:55:00

2 réponses

Voici ce que j'ai fait dans Blender 2.63:

bpy.data.scenes['Scene'].render.filepath = '/home/user/Documents/image.jpg'
bpy.ops.render.render( write_still=True ) 

ce que je faisais c'était créer un panorama VR (une série d'un objet de coups de feu autour d'elle). Et j'ai fini avec cet algorithme:

  1. créer ou charger un objet que vous allez prendre des photos de la
  2. mise à l'échelle et effectuer certaines éclairage agréable; vérifier l'éclairage avec le rendu de la scène (utiliser F12)
  3. créer un Empty noeud et régler sa position et sa rotation à l'identité (position: 0, 0, 0, rotation:0, 0, 0)
  4. réglez votre vue caméra à la position de départ (vérifiez avec le rendu, encore une fois)
  5. lancez le script!

Vous retrouver avec step_count coups de feu autour de votre objet à l'intérieur de votre /home/user/VR répertoire.

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 )
26
répondu shybovycha 2013-07-11 22:02:54

quelque chose comme ceci:

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()
8
répondu Dirk 2013-04-09 15:37:23