Headless graph render
Render a saved .rj graph by giving Roji the render node to execute.
The result is a layered USD package and the Roji Render command needed to render it.
Run a render node from a graph
The render node value can be the node id, label, or display name. Installed workstations and VM workers should call the global Roji launchers from PATH. If PATH is not configured, use the same commands from the installed Roji launcher directory, not a development checkout.
roji_graph_render.cmd "%ROJI_PROJECT_ROOT%\shots\010\shot.rj" "Render01"
roji_graph_render.cmd --graph "%ROJI_PROJECT_ROOT%\shots\010\shot.rj" --render-node "Render01"
roji_graph_render.cmd --graph "%ROJI_PROJECT_ROOT%\shots\010\shot.rj" --render-node "Render01" --compile-only --job-json "%ROJI_FARM_JOBS%\shot_010_render_job.json"
roji_graph_render.cmd --graph "%ROJI_PROJECT_ROOT%\shots\010\shot.rj" --render-node "Render01" --render-exe roji_render.cmd
--render-node.
Headless graph render arguments
These arguments belong to roji_graph_render.cmd. The command prepares the same layered USD render package as the UI Render button, writes render_job.json, then launches roji_render.cmd unless compile-only mode is enabled.
| Argument | Value | Purpose |
|---|---|---|
<graph.rj> | Path | Positional graph file. Equivalent to --graph when the first positional value ends with .rj. |
<render-node> | Node id, label, or display name | Positional render node selector. Equivalent to --render-node. |
--graph | Path to .rj | Saved Roji graph document to load and compute. |
--render-node | Node id, label, or display name | Render node to execute inside the graph. |
--render-exe | Path or command | Overrides the renderer launcher. Usually omitted so Roji uses the configured or installed roji_render.cmd. |
--output | EXR path | Overrides the final render output path produced by the render node. |
--layer | Layer id or name | Overrides the active render layer for this launch. |
--layer-id | Layer id or name | Alias accepted by the runner for the active render layer override. |
--render-layer | Layer id or name | Alias accepted by the runner for the active render layer override. |
--samples | Positive integer | Temporary sample clamp for validation or farm tests. It preserves graph settings and only overrides this launch. |
--compile-only | Flag | Prepares the render USD and job metadata, prints the job summary, and does not launch the renderer. |
--job-json | JSON path | Writes the render receipt to a specific path. If omitted, Roji writes render_job.json beside the prepared render USD. |
Renderer arguments generated from the graph
roji_graph_render.cmd also builds the lower-level roji_render.cmd argument list from the render node. The exact list for a job is recorded in render_job.json under renderArgs.
| Group | Generated roji_render.cmd arguments |
|---|---|
| Scene and output | <scene.usd>, -o <output.exr>, -w <width>, --height <height>, -spp <samples> |
| OCIO and preview color | --ocio-config, --ocio-display, --ocio-view, --ocio-input-space, --ocio-scene-space, --ocio-exposure, --env-map-max-size |
| Camera, display and backend | --camera, --display-mode, --backend, --no-visualizer-wire, --focus-distance, --f-stop, --no-dof |
| Workers, memory and diagnostics | --threads, --cpu-usage, --embree-build-quality, --render-mode, --memory-mode, --low-memory-reserve-gb, --progressive-preview, --no-render-stats, --tile-size, --worker-debug |
| Sampling and light transport | --min-spp, --max-spp, --variance-threshold, --adaptive-check, --pixel-filter, --light-samples, --emissive-light-samples, --caustics, --deep, --deep-mode, --deep-error, -bounces, --rr-start-bounce, --rr-min-prob |
| Subdivision and displacement | --no-displacement, --disp-level, --embree-native-subdiv, --adaptive-subdiv-mode, --adaptive-subdiv-frustum-margin, --adaptive-subdiv-target-px, --cel-adaptive-tess-exclude, --cel-quality, --cel-subdiv |
| Instances | --no-instances, --instance-density, --instance-camera-frustum, --instance-camera-frustum-margin |
| Roji H.U.G.E. archives | --cel-archive, --cel-cache-budget-gb, --cel-max-entry-fraction, --cel-cache-physical-fraction, --cel-static-block-cost-multiplier, --cel-preload, --cel-super-scene, --cel-super-scene-budget-gb, --cel-skip-usd-geometry |
| AOVs and multilayer EXR | --aov-albedo, --aov-normal, --aov-depth, --aov-object-id, --aov-diffuse-direct, --aov-diffuse-indirect, --aov-specular-direct, --aov-specular-indirect, --aov-transmission, --aov-caustics, --aov-emission, --aov-sss, --aov-light-groups, --light-group-preset, --aov-multilayer, --aov-multilayer-only, --aov-cryptomatte |
| Catcher passes and crop | --shadow-catcher-path, --shadow-pass-hero-path, --reflection-catcher-path, --reflection-pass-hero-path, --crop-window |
| Custom AOVs, light groups and motion | --custom-aov, --custom-aov-scope, --custom-aov-color, --disable-light-group, --light-group-gain, --sss-model, --shutter-open, --shutter-close, --motion-segments, --no-camera-motion-blur, --no-geometry-motion-blur |
Layered, not flattened
The final render USD is a lightweight composition file with sublayers.
| Layer | Purpose |
|---|---|
| Incoming USD refs | The assembled scene files connected into the render node. |
| Camera layer | Generated lookdev camera or explicit camera data. |
| Render override layer | Products, settings, AOVs, light linking, and metadata. |
| Shaderverse layers | Look packages and resolved material binding data. |
| Final render USD | A composition file that references the render layers with subLayers. |
render_job.json
Every prepared render writes render_job.json. Treat it as the receipt for what rendered.
graphPathrecords the saved.rjfile.renderNodeIdrecords the chosen render node.usdFilePathpoints to the final layered USD.argsrecords the exact Roji Render command arguments.sublayersand resolved refs explain what got composed.