render
Start, monitor, and inspect Houdini final-image jobs from ROP nodes: check settings and progress, read stats, compare images, and create ROPs.
Instructions
Start a render, read its settings, or watch it run.
Modes: start, progress, settings, create, watch, stats, compare.
Use it for a final picture through a ROP node. For a fast look at the
viewport, use capture instead: it is much quicker.
mode:
"start" — render the ROP at `path`. `frame_range` is [start, end];
without it the node renders its own range. `output_path`
and `res_scale` hold for this render only: the ROP keeps
the output and the size of the user. Use them for test
renders. `wait=true` returns when every image is
complete (husk ended; up to about 28 minutes), with the
render stats of the last one. Without wait, husk can go
on after the call. `background=true` renders the saved
.hip file in a separate hython and returns at once with
its pid and log: the session stays free for the user
and for other calls while the stage cooks and husk
renders. Follow it with "watch".
"progress" — what the ROP reports about the render.
"settings" — the output file, the camera, the resolution and the
range of the ROP; the render delegate that really runs
(`engine` cpu or xpu, and `engine_from`: the ROP
renderer, else husk:default_delegate on the render
settings prim); a warning when a Karma settings node
says another engine; and the changed Karma settings,
split into the ones that engine reads and the ones it
ignores, with the reason. Karma XPU shows the CPU
Quality controls and ignores them; its Limits tab
counts. parm_set and execute warn on a write that the
engine of the node ignores.
"create" — make a ROP of `render_type` ("opengl", "karma", "mantra",
"ifd", …) named `name` under `parent_path`.
"watch" — count the husk and mantra processes on this machine, and
say whether the file at `output_path` is there and how big
it is. This mode does not need Houdini, so it also works
while Houdini is busy with the render.
"stats" — what husk wrote into the image at `output_path`
(husk:render_stats): render time, the engine that really
ran, each XPU device with its share of the samples,
shader compiles, peak memory, the AOVs. A GPU at 0 %
with compiles in progress is not a slow GPU.
"compare" — the mean and the largest absolute difference of each AOV
of `output_path` against `reference`, to tune samples
against a clean render.
Returns JSON. A render that writes no file, with no process running, has
failed: read the node with cook to see the error.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | One of "start", "progress", "settings", "create", "watch", "stats", "compare". | start |
| name | No | create: the name of the new ROP. | |
| path | No | start, progress, settings: the ROP node. | |
| wait | No | start: return when every image is complete, with its render stats. | |
| reference | No | compare: the image to compare `output_path` with. | |
| res_scale | No | start: a fraction of the resolution for this render only, 0.5 is half. | |
| background | No | start: render the saved .hip file in a separate hython, so Houdini stays free. The scene must have no unsaved changes. | |
| frame_range | No | start: [start, end] or [start, end, step]. Without it the ROP renders its own range. | |
| output_path | No | start: the image file for this render only (put $F4 in it for a range). watch, stats, compare: the image file. | |
| parent_path | No | create: the network that gets the ROP. | /out |
| render_type | No | create: the ROP kind, for example "opengl", "karma", "mantra" or "ifd". | opengl |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |