Command line and render farms#
Render, simulate into a shared cache and render frame ranges on many machines, wedge settings, and check a scene's settings, all without the app.
blackbody render shot.bbfire -o renders/fire.####.exr
blackbody render shot.bbfire -o comp.mov --content composite --format prores422hq
blackbody render --preset campfire --footage plate.mov -o comp.mp4 --content composite
blackbody render shot.bbfire -o vdb/fire.####.vdb --frames 1001-1100 --res 256
blackbody render shot.bbfire -o fire.####.exr --set motion.wind_speed=3 --set shading.exposure=-0.5
blackbody render shot.bbfire -o wedge/fuel20.####.exr --set emitter.0.fuel=20
blackbody render shot.bbfire -o deep/fire.deep.####.exr
blackbody render shot.bbfire -o usd/shot.scene.usdc -o cam/shot.chan
blackbody render --preset campfire --usd shot.usd -o fire.####.exr
blackbody render --preset campfire --usd shot.usd --usd-offset 1000 -o fire.####.exr
blackbody simulate shot.bbfire --cache //server/cache/shot
blackbody render shot.bbfire --from-cache //server/cache/shot --frames 1001-1050 -o fire.####.exr
blackbody presets
blackbody settings motion
blackbody info
blackbody precompile
-
####is the frame number. The output type follows the extension:.exr.png.vdb.mov.mp4.webm;.objor.usd(.usdc,.usda) for the liquid's surface and the fabric; a.usdname with.scene.in it (or--content scene) for the shot as a USD scene, and with.camera.(or--content camera) for its camera alone;.chanfor the camera as Nuke reads it. See Outputs. -
--set section.key=valueoverrides any setting;emitter.N.key,collider.N.key,light.N.keyandfabric.N.keyreach one emitter, collider, light or fabric (numbered from 0).blackbody settingslists every name with its default and range. Values are checked before anything renders: a typo stops the job instead of rendering with a default. -
--draftrenders at interactive quality. -
EXRs carry the compositing passes (motion vectors, normals and positions, object mattes, Cryptomatte: see Outputs);
--no-passesleaves them out, saving about two seconds a full-HD EXR frame (more in sets with many pieces). With--exr-compression dwaaordwaban EXR that has them is written with ZIP: DWA is lossy and would garble the Cryptomatte. -
--usd FILEbrings the camera, objects (as colliders) and lights in from a USD scene before rendering, and takes its frame range and frame rate, as File › Import USD scene does (with--footage, or a project with footage, only where the shot starts: the footage keeps its length and rate).--usd-offset Nturns USD frame F into frame F − N, so--usd-offset 1000renders a 1001–1100 shot as frames 1–100; the camera and objects stay in step.--usd-keep-rangekeeps the project's or preset's own range and rate. -
Simulate once, render anywhere.
blackbody simulatesimulates into a disk cache folder (by defaultNAME.bbcachenext to the project), with a checkpoint every few frames; run it again after a crash or a stop and it resumes from the last checkpoint.blackbody render --from-cache FOLDERthen renders frames from that cache without simulating, so several machines can render different frame ranges of one simulation. They only read the cache, and refuse one simulated with other settings instead of overwriting it.render --cache FOLDERsimulates and fills the cache as it renders. -
GPU memory on a farm. A scene is fitted to the GPU's memory before it is simulated (see Performance and memory): on a card without room for it as set, its Detail upres and then its voxels are stepped down, and the job's log says so. The plan comes from the card's size, so every machine with the same card lays a scene out the same, and the cache records the layout it was simulated at:
render --from-cacherenders that layout on any card (a machine with less memory may run out on a large one), andsimulateresuming a cache keeps it while it fits. SetBLACKBODY_GPU_MEMORYto the same number of GB on every machine that simulates (the smallest card's, or less) so they all fit a scene alike, whatever their cards;blackbody infoshows what a machine reads and the plan it makes. -
Each render also writes a
<name>_render.jsonsidecar with the full scene and settings, for reproducibility. -
blackbody precompilecompiles the slow GPU shaders now (the liquid renderer's, 20 to 55 s on an RTX 3090 with Vulkan, and any shader this machine has used that took more than 2 s and has changed since), so the first liquid render does not wait for them. Run it after installing or updating Blackbody or the graphics driver, on each farm machine (the driver keeps what it compiles, per machine). The app does the same in the background when it opens. -
On a farm: when the output goes to a log instead of a terminal, progress is written as whole lines (
Progress: 25.0% Frame 1 of 4 …, one per frame) in UTF-8. Exit codes:0done,1failed (the log ends withError: …),2bad arguments,130cancelled.
Something wrong or missing on this page? Edit it on GitHub.