RenderManOptions

Sets global scene options applicable to the RenderMan renderer. Use the StandardOptions node to set global options applicable to all renderers.

user

Container for user-defined plugs. Nodes should never make their own plugs here, so users are free to do as they wish.

out

The processed output scene.

enabled

The on/off state of the node. When it is off, the node outputs the input scene unchanged.

in

The input scene

options

The options to be applied - arbitrary numbers of user defined options may be added as children of this plug via the user interface, or using the CompoundDataPlug API via python.

options.ri:hider:type

Render mode.

options.ri:hider:adaptall

If one or more channels are marked with relativepixelvariance > 0.0, those channels will control the adaptive sampling (and “adaptall” is ignored).

However, if no channel is explicitly marked with relativepixelvariance > 0.0, “adaptall” determines which channel(s) will be control the adaptive sampling: When “adaptall” is enabled, all channels (beauty + AOVs) are considered when deciding if a pixel is converging. When “adaptall” is off (the default), the AOVs are ignored and only the beauty channel is considered for pixel convergence. So turning off “adaptall” may speed up your render if some of your AOVs never reach the specified variance threshold and you haven’t explicitly marked any channels with relativepixelvariance > 0.0.

options.ri:hider:adaptivemetric

Specifies the metric used to drive adaptive sampling. “contrast” measures the contrast between samples in a pixel. “variance” measures the variance of the samples in a pixel. “halfbuffer” splits the samples into two classes and measures the difference between the average of each of the two sample classes. “contrast-v22” uses the relative contrast computation of RenderMan 22 and older. “variance-v22” uses the relative variance computation of RenderMan 22 and older.

options.ri:hider:exposurebracket

Intended exposure Bracket [min max] in post-production to help inform the adaptive sampling.

options.ri:hider:extrememotiondof

Enable improved sampling accuracy. In some cases where a large amount of motion blur is used with depth of field, sampling artifacts could cause an undesirable result. This flag causes a slower but more accurate sampling method to be used to alleviate the artifacts. Due to the performance degradations of this sampling method, this flag should only be used when necessary.

options.ri:hider:incremental

Enables the progressive display of results (rather than bucketed results).

options.ri:hider:decidither

Maximum allowed pixel decimation rate for interactive rendering. When making rapid edits to heavy scenes and this setting is non-zero, the renderer will try to reduce tearing by updating the whole screen progressively with a dissolve-like effect. Set this to zero to disable this and force it to fully update the buckets that it can get to.

options.ri:hider:bluenoise

Setting to control whether the samples should have a visually pleasing blue noise distribution or not. Default is 1 (on). Set to 0 (off) if the samples in adjacent pixels need to be completely decorrelated.

options.ri:hider:jitter

This option toggles the jitter (variation) in camera samples. By default, this hider option is enabled (set to 1), meaning that camera samples will be placed randomly in a pixel location. When it is turned off, camera rays are placed in the center of the pixel. When turned off, surface edges will appear aliased and jagged.

options.ri:hider:geomShadowTermBias

This setting will control when to compute and apply a bias to Poly Meshes to avoid the geometric shadow terminator artifacts that appear for shading points when they are visible from a light wrt their shading normal, but not visible wrt their geometric normal. The default value is 1 (on). Set to 0 (off) if you don’t want this bias to be applied to the Poly Meshes in your scene.

options.ri:hider:maxsamples

An explicit limit for the number of samples. If maxsamples is equal to its default then the maximum number of samples will be set equal to 64. Note that minsamples defaults to the square root of the maxsamples setting.

options.ri:hider:minextrasamples

This is the minimum number of extra samples that a pixel should continue shooting with after a sample fails to meet its convergence test with the adaptive sampler. Defaults to matching minsamples.

options.ri:hider:minsamples

Specifies the minimum number of samples for adaptive sampling. The default value is the square root of maxsamples.

options.ri:hider:staticsampletime

Controls the time at which the renderer will sample motion blurred geometry when Sample Motion is disabled. The value here is measured relative to the shutter, i.e. 0 = shutter open, 1 = shutter close.

options.ri:hider:samplestride

This facilitates rendering several images in parallel (with the same aamplestride but different sampleoffset) and then combine them incrementally during interactive rendering. Default value is 1.

With non-adaptive sampling: Let’s say you render four images with 256 samples each, with samplestride 4 and sampleoffsets 0, 1, 2, and 3. If you combine those four images, you’ll get exactly the same image as if you had rendered a single image with 1024 samples, and during incremental/interactive rendering you’ll get the benefit of best use of the stratified progressive sample sequences. If you can “assemble” images with samples 0-3, 4-7, 8-12, etc during interactive rendering, you’ve got the benefits of faster rendering without jumping to high samples early on.

With adaptive sampling: Let’s say you again render four images, each with “maxsamples” 256, with samplestride 4 and sampleoffsets 0, 1, 2, and 3. This time with adaptive sampling (PixelVariance > 0). Since each of the four images is more noisy than the combined image, the adaptive sampling will use more samples before deciding that the image error is acceptable than if it had been rendered as a single image. So the PixelVariance setting may need to be adjusted.

options.ri:hider:sampleoffset

This allows several images to be rendered in parallel (with different sampleoffset values) and then combined.

With non-adaptive sampling: Let’s say you render four images with 256 samples each, with sampleoffsets 0, 256, 512, and 768. If you combine those four images, you’ll get exactly the same image as if you had rendered a single image with 1024 samples.

With adaptive sampling: Let’s say you again render four images, each with “maxsamples” 256, with sampleoffsets 0, 256, 512, and 768. Let’s say that due to adaptive sampling, some given pixel only gets 64 pixel samples in each of the four images. Then the combined image has been rendered with sample numbers 0-63, 256-319, 512-575, and 768-831. Due to the stratification of the samples, this is not quite as good as if you had rendered a single image with 256 consecutive samples. However, it is still better than rendering a single image with only 64 samples.

options.ri:Ri:PixelFilterName

Distribution of camera ray directions for each pixel. In other words, the filter determines how the pixel samples are warped in screen space around the pixel center.

options.ri:Ri:PixelFilterWidth

Width of the distribution of camera ray directions for each pixel.

options.ri:Ri:PixelVariance

Controls adaptive sampling. This sets the upper bound on the acceptable estimated variance of the pixel values from the true pixel values.

options.ri:Shutter:offset

Offset shutter open/close.

options.ri:hider:bakemode

Specifies whether the renderer should bake Pattern results or Integrator results or both.

options.ri:hider:primvar

Specifies dicing manifold used when baking integrator results.

options.ri:hider:invert

Specifies whether or not to invert the T texture coordinate when baking integrator results.

options.ri:hider:bakeudimstride

Stride when baking for a subset of udims. Default 1 means bake all udims.

options.ri:hider:bakeudimoffset

Offset when baking for a subset of udims. Used together with bakeudimstride. Default 0 means bake all udims when bakeudimstride is 1.

options.ri:hider:bakebboxmin

Bounding box min for “integrator” baking of 3D point clouds (and for the integrator part of “all” baking. In world space. Ignored for “pattern” baking and for 2D baking.

options.ri:hider:bakebboxmax

Bounding box max for “integrator” baking of 3D point clouds (and for the integrator part of “all” baking. In world space. Ignored for “pattern” baking and for 2D baking.

options.ri:hider:raytracebaketesselation

Force the tesselation to be the same as the baking tesselation when raytracing (for example when using a PxrOcclusion or PxrDirt shader). This can reduce self intersections and give cleaner results but may increase the density of polygons when raytracing. If you have multiple pattern bakes at different resolutions, the highest resolution will be chosen. Don’t attempt to use this option alongside interactive rendering.

options.ri:lighting:selectionlearningscheme

Employs a machine learning algorithm to more accurately importance sample lights, taking into account occlusion and light filters.

options.ri:lighting:minimumestimate

Minimum estimate for light selection. Local lights whose estimate falls below this value will be ignored. Increasing this value may help speed up direct lighting at the expense of accuracy.

options.ri:trace:worldoffset

Used as the origin when the worldorigin option is set to “worldoffset”.

options.ri:trace:worldorigin

Set a new world origin to give better floating point precision.

options.ri:trace:bvhcompression

Provides a hint to the system to favor memory utilization versus speed when constructing the ray accelerator. Valid values are in the range [0, 1], where the higher the values the more compact the memory representation. The control behaves almost lineraly with some discontinuities in the compression rate as different strategies are activated. The result obtained is likely to be scene dependent. As a rule of thumb, leave this control to 0 unless you need to reduce memory utilization in order to render a given scene or sequence. When tuning, set the control to 1 at first to see how much memory can be saved through compression and what time overhead is generated, then dial the number back to a lower value (if possible) and reach the deired balance between speed and memory usage.

options.ri:curve:minwidth

Minimum curve width in raster coordinates.

options.ri:dice:offscreenmultiplier

Dicing rate multiplier for objects outside the viewing frustum.

options.ri:dice:triangle

The method used for dicing “triangles”. The default method “trim” renders triangles by trimming a quad. The “blp” method renders a quad with two points being coincident.

options.ri:stitch:refwarning

Enable stitch warnings.

options.ri:bucket:order

Render bucket order.

options.ri:bucket:orderorigin

First bucket for “spiral” and “circle” order. Image center is [-1 -1].

options.ri:deep:flagvolumes

Auto is off for dtex, on otherwise.

options.ri:checkpoint:asfinal

When enabled, this keeps the extra channels and the checkpoint tag when writing the final image for the render. The final image will be identical to any other checkpoint, rather than a slimmed down image. This means that once your image has reached the quality you’ve set and it completes, it can always be restarted by the user later.

options.ri:checkpoint:command

System command to be called after checkpoint. If system calls are enabled, then after a checkpoint has been written, the specified command will be called. This is synchronous; the rendering threads are quiescent while this runs and will not resume again until the process returns, avoiding possible race conditions if the command takes a token %i will be replaced with the current increment, zero-padded to 5 digits. The token %e will be replaced with the elapsed time in seconds, zero-padded to 6 digits. The token %r will be replaced with the reason for this update to the checkpoint files (either completely finished, exiting early due to exitat option, or a normal checkpoint). Literal % characters may be inserted with %%.

options.ri:checkpoint:exitat

How long render should run before writing a final checkpoint and terminating. Value can also be a string such as “10m” or “0.5h”. Set to 0 or empty to disable.

options.ri:checkpoint:interval

Write framebuffers to disk every N progressive steps. If value is positive the units will be interpreted as seconds. If value is negative its units will be interpreted as increments. Value can also be a string such as “10m” or “0.5h”. Setting option to 0 or empty will disable checkpoints.

options.ri:checkpoint:keepfiles

If set to true then prman will write to a new, numbered image for each checkpoint. Note: This will disable the final write of a checkpoint file which means the render cannot be recovered using the ‘recover’ option.

options.ri:shade:debug

Shading debug level.

options.ri:shade:roughnessmollification

Specular Roughness Mollification. This selectively increases material roughness on secondary bounces after diffuse or broad glossy reflections and on highly curved surfaces. This reduces noise and fireflies, but can also make caustics blurrier or disappear entirely. Set this value to 0.0 when you want to render ground-truth caustics. The default value is 1.0.

options.ri:shade:shadowBumpTerminator

Setting to control whether bump shadow terminators are smoothed in non-hair bxdfs.

options.ri:statistics:jsonFilename

File name for raw statistics JSON report.

options.ri:limits:brickmemory

Brickmap cache size in kB.

options.ri:limits:bucketsize

Size of render buckets in pixels.

options.ri:limits:deepshadowerror

Control lossy compression scheme to reduce file size of deep output. Setting to a high value will result in lower numbers of samples stored for each pixel.

options.ri:limits:geocachememory

Geometry cache size in kB.

options.ri:limits:matrixcachememory

Matrix cache in kB.

options.ri:limits:nurbcurvaturedicefactor

NURBs max curvature multiplier.

options.ri:limits:octreememory

None cache size in kB.

options.ri:limits:opacitycachememory

Opacity cache in kB.

options.ri:limits:othreshold

Opacity Culling: When rendering scenes with a large number of semi-transparent layered objects (e.g. hair), the opacity culling threshold can be set for a significant time and memory savings. Essentially, a stack of visible points whose accumulated opacity is greater (in each channel) than the specified limit will be considered fully opaque by the hider, and objects behind the stack will be culled.

options.ri:limits:pointmemory

Point cache size in kB.

options.ri:limits:ptexturememory

PTex cache size in kB.

options.ri:limits:rendermemory

Memory limit as percentage of machine memory.

options.ri:limits:rendertime

Maximum render time in minutes.

options.ri:limits:shadesize

The maximum number of vertices, not grid.

options.ri:limits:texturememory

Texture cache size in kB.

options.ri:limits:threads

Set the number of threads that the renderer uses. If a value of 0 is specified then all CPUs will be utilized for rendering. If a negative value ‘-N’ is specified then prman will use all but N CPUs for rendering.

options.ri:searchpath:archive

Search path for Rib archives and DelayedReadArchive.

options.ri:searchpath:dirmap

Search path remapping.

options.ri:searchpath:display

Search path for display plug-ins.

options.ri:searchpath:procedural

Search path for DynamicLoad procedural plug-ins.

options.ri:searchpath:rifilter

Search path for Rif plug-ins.

options.ri:searchpath:rixplugin

Search path for shading plug-ins.

options.ri:searchpath:shader

Search path for OSL pattern plug-ins.

options.ri:searchpath:texture

Search path for texture files.

options.ri:osl:batched

Enable OSL optimizations that allow execution of multiple shading points via vectorized instructions on supported processors (AVX, AVX2, AVX512).

options.ri:osl:statisticslevel

Set the level of OSL statistics to track. Level 2 and above introduces timing which can have a small effect on performance. Level 4 and above includes internal OSL statistics. Level 5 includes statistics per shader. Other levels reserved for future use.

options.ri:osl:verbose

Sets the level of OSL messages to pass through.

options.ri:volume:aggregatespace

Space in which to compute aggregate volume metadata. Valid spaces are “world” and “camera”. Generally the space should be chosen to minimize the range of motion of the volumes.

options.ri:lpe:diffuse2

Defines the contents of the D2 custom LPE lobe.

options.ri:lpe:diffuse3

Defines the contents of the D3 custom LPE lobe.

options.ri:lpe:diffuse4

Defines the contents of the D4 custom LPE lobe.

options.ri:lpe:specular2

Defines the contents of the S2 custom LPE lobe.

options.ri:lpe:specular3

Defines the contents of the S3 custom LPE lobe.

options.ri:lpe:specular4

Defines the contents of the S4 custom LPE lobe.

options.ri:lpe:specular5

Defines the contents of the S5 custom LPE lobe.

options.ri:lpe:specular6

Defines the contents of the S6 custom LPE lobe.

options.ri:lpe:specular7

Defines the contents of the S7 custom LPE lobe.

options.ri:lpe:specular8

Defines the contents of the S8 custom LPE lobe.

options.ri:lpe:user2

Defines the contents of the U2 custom LPE lobe.

options.ri:lpe:user3

Defines the contents of the U3 custom LPE lobe.

options.ri:lpe:user4

Defines the contents of the U4 custom LPE lobe.

options.ri:lpe:user5

Defines the contents of the U5 custom LPE lobe.

options.ri:lpe:user6

Defines the contents of the U6 custom LPE lobe.

options.ri:lpe:user7

Defines the contents of the U7 custom LPE lobe.

options.ri:lpe:user8

Defines the contents of the U8 custom LPE lobe.

extraOptions

An additional set of options to be added. Arbitrary numbers of options may be specified within a single IECore.CompoundObject, where each key/value pair in the object defines an option. This is convenient when using an expression to define the options and the option count might be dynamic. It can also be used to create options whose type cannot be handled by the options CompoundDataPlug.

If the same option is defined by both the options and the extraOptions plugs, then the value from the extraOptions is taken.