Rendering multiple images in one Blender run - golemfactory/golem-rd GitHub Wiki

Rendering multiple images in one Blender run

Example Blender script that produces 5 images in a single Blender run:

import bpy

def render_fragment(n, x0, y0, dx, dy):
    scene = bpy.data.scenes['Scene']
    scene.render.resolution_x = 800
    scene.render.resolution_y = 600
    scene.render.use_border = True
    scene.render.use_crop_to_border = True

    scene.render.border_min_x = x0
    scene.render.border_min_y = y0
    scene.render.border_max_x = x0 + dx
    scene.render.border_max_y = y0 + dy

    scene.render.filepath = "scene-%d.png" % n
    bpy.ops.render.render(scene = 'Scene', write_still = True)


render_fragment(0, 0, 0,     1.0, 1.0)  # render the whole image
render_fragment(1, 0,   0,   0.5, 0.5)  # render the upper left quadrant
render_fragment(2, 0.5, 0,   0.5, 0.5)  # render the upper right quadrant
render_fragment(3, 0,   0.5, 0.5, 0.5)  # render the lower left quadrant
render_fragment(4, 0.5, 0.5, 0.5, 0.5)  # render the lower right quadrant

Save the script in blenderscript.py and run:

$ blender gnr/benchmarks/blender/blender_task/scene-Helicopter-27.blend -b -P ./blenderscript.py

This will produce files scene-0.png ... scene-4.png in the current dir.

Note: the write_still = True is crucial, without it no file is written.