Renderizando y guardando imágenes a través de Blender python
save (3)
Tendrás que hacer lo siguiente. La i
en la segunda línea después del bucle for
es el índice de bucle del bucle de archivo.
He verificado que esto funciona mientras se ejecuta en la consola y también desde la línea de comandos. No olvide eliminar los objetos después de procesar un archivo. (El comando de eliminación no se da aquí porque no es genérico. Se necesitarán algunos argumentos específicos en ese comando si ese objeto tiene enlaces)
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)
Estoy tratando de renderizar y guardar múltiples imágenes a través del script python en blender. Sé cómo renderizar y guardar la imagen a través de la GUI de Blender, pero quiero hacerlo todo a través de mi script ya que estoy usando un conjunto de bucles anidados y necesito guardar varias imágenes. Soy capaz de renderizar la imagen y supongo que guardar la imagen con el resultado de tener éxito. Pero no estoy seguro de dónde se guarda y cuando intento editar la ruta de archivo, me da el error de que el contexto es incorrecto.
algo como esto:
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()
Aquí lo que he hecho en Blender 2.63
:
bpy.data.scenes[''Scene''].render.filepath = ''/home/user/Documents/image.jpg''
bpy.ops.render.render( write_still=True )
Lo que estaba haciendo es crear un panorama VR (una serie de disparos de un objeto a su alrededor) . Y terminé con este algoritmo:
- Crea o carga un objeto del que vas a tomar imágenes.
- escalarlo y realizar una buena iluminación; compruebe la iluminación con la representación de la escena (utilice la tecla F12 )
- cree un nodo
Empty
y establezca su posición y rotación en identidad (posición:0, 0, 0
, rotación:0, 0, 0
) - coloque la vista de su cámara en la posición de inicio (verifíquela con el renderizado, nuevamente)
- ejecuta el script!
Deberá terminar con step_count
tomas step_count
a step_count
alrededor de su objeto dentro de su directorio /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 )