Skip to content

Rendering

A single global RenderConfig controls everything. Set it before opening shots.

from dsl.rendering import use_fast_output, use_production_output

use_fast_output(engine="workbench", downsample_factor=4)      # fast proxy
use_production_output(engine="cycles", cycles_samples=128)     # final

Engines

Engine Speed Lights? Look
workbench instant no (built-in studio light) flat, uniform
eevee real-time yes raster, material sheen
cycles slow yes path-traced, most natural
workbench (lights ignored) eevee (lit) cycles (path-traced)
workbench eevee cycles

Modes

Mode Pipeline Audio
fast render sampled frames at low res, mux a separate audio mixdown muxed proxy
production normal Blender animation render, full res sequencer audio included
fast (downsampled proxy) production (full resolution)
fast production

RenderConfig fields

Field Default Meaning
mode fast fast (proxy) or production (full)
engine workbench workbench / eevee / cycles
animation_fps 24 authoring FPS (keep at 24)
output_fps 1 (fast) proxy video FPS
frame_step 24 (fast) render every Nth frame
downsample_factor 4 divides the 1280×720 base resolution
cycles_samples 16 path-tracing samples

Keep downsample_factor even-dimensioned

The fast-proxy encode uses libx264/yuv420p, which needs even width and height. Odd results (e.g. 6 → 1280//6 = 213, odd) produce a 0-byte mp4. Safe factors for 1280×720: 1, 2, 4, 5, 8. Avoid 6, 7, 9, 11…

Per-shot output path

shot.output("folder/name.mp4") overrides the default renders/<set>/<location>/shotN.mp4 (relative to renders/).

Shortcuts

use_fast_viewport_render() · use_fast_eevee() · use_fast_cycles() — preconfigured fast profiles.