PrmanRender

PrmanRender (NukeX and Nuke Studio only) is a render node that works together with Pixar’s PhotoRealistic RenderMan® Pro Server 20, or earlier, to give you an even better quality render result. PrmanRender is an alternative to Nuke’s ScanlineRender with additional features for rendering 3D scenes. With PrmanRender, you have control over aspects like shadows and reflections in your render result.

In order to use the PrmanRender node, you need to have Pixar's RenderMan Pro Server 20, or earlier, installed and licensed on your machine.

See also ScanlineRender, Reflection, and Refraction.

Inputs and Controls

Connection Type

Connection Name

Function

Input

cam

An optional camera input. The scene is rendered from the perspective of this camera. If the camera input is not connected, PrmanRender uses a default camera positioned at the origin and facing in the negative Z direction.

obj/scn

Either:

A Scene node that is connected to the objects and lights you want to render, or

a 3D object or MergeGeo node.

bg

An optional background input. This can be used to composite a background image into the scene and to determine the output resolution. If not used, this defaults to root.format or root.proxy_format defined in the Project Settings.

Control (UI)

Knob (Scripting)

Default Value

Function

PrmanRender Tab

shadows

shadows

disabled

When enabled, add shadows to your render. You can adjust the parameters for your shadows using the Light node’s Shadows tab.

reflections

reflections

disabled

When enabled, add reflections to your render. You can adjust the parameters for your reflections using the Reflection node’s Properties panel.

refractions

refractions

disabled

When enabled, add refractions to your render. You can adjust the parameters for your refractions using the Refraction node’s Properties panel.

dof

dof

disabled

When enabled, add depth of field to your render.

projection mode projection_mode render camera

Sets the projection mode during render:

perspective - objects in front of the camera have the illusion of depth defined by the camera's focal-length and aperture.

orthographic - objects are viewed using parallel projection.

render camera - take the projection mode from the camera input.

overscan

overscan

0

Sets the number of pixels to render beyond the left/right and top/bottom of frame, if requested by subsequent operations.

ambient

ambient

0

Sets the global ambient light level.

Sampling Tab

raytrace max depth

raytrace_max_depth

5

Sets the maximum number of specular reflection and refraction bounces PrmanRender uses to trace your scene and make render calculations.

pixel samples

pixel_samples

10

Sets the number of samples to render per pixel. Having more samples increases your render quality, but also increases render time.

Note:  Setting this value to 1 turns antialiasing off.

shading rate

shading_rate

0.5

Sets the number of shading calculations for primitives. For example, a shading rate of 1.0 specifies one shading sample per pixel.

This value, along with pixel samples, directly affects your rendering time and the final quality of your results. A low shading rate value means your render will take more time, but the quality will be very high. A high value on the other hand means your render is faster, but the final quality will not be as good.

filter filter Cubic

Select the filtering algorithm to use when remapping pixels from their original positions to new positions. This allows you to avoid problems with image quality, particularly in high contrast areas of the frame (where highly aliased, or jaggy, edges may appear if pixels are not filtered and retain their original values).

Impulse - remapped pixels carry their original values.

Cubic - remapped pixels receive some smoothing.

Keys - remapped pixels receive some smoothing, plus minor sharpening (as shown by the negative -y portions of the curve).

Simon - remapped pixels receive some smoothing, plus medium sharpening (as shown by the negative -y portions of the curve).

Rifman - remapped pixels receive some smoothing, plus significant sharpening (as shown by the negative -y portions of the curve).

Mitchell - remapped pixels receive some smoothing, plus blurring to hide pixelation.

Parzen - remapped pixels receive the greatest smoothing of all filters.

Notch - remapped pixels receive flat smoothing (which tends to hide moire patterns).

Lanczos4, Lanczos6, and Sinc4 - remapped pixels receive sharpening which can be useful for scaling down. Lanczos4 provides the least sharpening and Sinc4 the most.

antialiasing filter

antialiasing_filter

Box

Sets the antialiasing method used to filter the pixel samples into the final color.

antialiasing filter size

antialiasing_filter_size

1

Sets the size of the antialiasing pixel filter to be used.

motion blur samples

samples

1

Sets the number of samples to render, per pixel, to produce motion blur. The maximum is 5.

This determines the number of samples of the 3D scene used so as low a value as possible is best for setup speed and memory use. If the motion in the scene over the shutter period is relatively linear, lower values can be used. If the motion is complex, then values toward the higher end of the range may be required.

If the rendered result shows banding or stepping that looks like too few motion blur samples, first try increasing the 'pixel samples' setting.

shutter

shutter

0.5

Sets the number of frames the shutter stays open when motion blurring. For example, a value of 0.5 corresponds to half a frame.

shutter offset shutteroffset start

This value controls how the shutter behaves with respect to the current frame value. It has four options:

centred - center the shutter around the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 29,5 to 30,5.

start - open the shutter at the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 30 to 31.

end - close the shutter at the current frame. For example, if you set the shutter value to 1 and your current frame is 30, the shutter stays open from frame 29 to 30.

custom - open the shutter at the time you specify. In the field next to the dropdown menu, enter a value (in frames) you want to add to the current frame. To open the shutter before the current frame, enter a negative value. For example, a value of - 0.5 would open the shutter half a frame before the current frame.

shuttercustom
offset

shuttercustomoffset

0

If the shutter offset parameter is set to custom, this parameter is used to set the time that the shutter opens by adding it to the current frame. Values are in frames, so -0.5 would open the shutter half a frame before the current frame.

randomize time

temporal_jitter

0

Adds randomness to the distribution of samples in time so they don’t produce regularly spaced images. The larger the value, the larger the time difference between the samples.

shutter opening

shutter_opening

None

Sets the shutter opening mode:

None - instantaneous open and close.

Linear - the shutter opens and closes in linear intervals.

Bezier - the shutter opens and closes more gradually, according to a Bezier curve.

Shader Tab

motion vectors

output_motion_vectors_type

distance

Sets the type of vectors you’d like to render:

off - no motion vector information is rendered.

velocity - store the velocity of every single pixel in the motion vector channels.

distance - for every pixel, store the distance (in pixels) between samples in the motion vector channels.

motion vector channels

MB_channels

forward

When motion vectors is set to anything other than off, the selected vector type is written to this channel or channels.

output vectors

output_shader_vectors

disabled

When enabled, shader vectors are output as well as motion vectors.

surface points

P_channel

none

When output vectors is enabled, the shader vector surface points are written to this channel or channels.

surface normal

N_channel

none

When output vectors is enabled, the shader vector surface normals are written to this channel or channels.

RIB Tab

filter

ribFilter

disabled

When enabled, filter the scene information generated by Nuke for RenderMan. Nuke then calls a Python function called nukescripts.renderman.filterRIB.

Note:  Filtering can make the render start up slightly slower as a temporary RIB file is created for each render.

arguments

filterArgs

none

When filter is enabled, specify your filter arguments. This string is passed by Nuke’s Python filter function as extra arguments to RenderMan. If you want to use your own filter, you can also replace Nuke’s Python function, and have your arguments passed directly to your own Python function.

For example, set the filter arguments to -rif myfilter.so to load your own RI filter.

ouput

file

file

none

Sets the RIB dump file path and name.

Tip:  For multiple frames use the #### pattern.

Execute

Execute

N/A

Click to dump RIB files for a given sequence the path specified in the file control.

Note:  You can execute from the command line using the -X nodeName switch.

Python Tab (These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.)

before render

beforeRender

none

These functions run prior to starting rendering in execute(). If they throw an exception, the render aborts.

before each frame

beforeFrameRender

none

These functions run prior to starting rendering of each individual frame. If they throw an exception, the render aborts.

after each frame

afterFrameRender

none

These functions run after each frame is finished rendering. They are not called if the render aborts. If they throw an exception, the render aborts.

after render

afterRender

none

These functions run after rendering of all frames is finished. If they throw an error, the render aborts.

render progress renderProgress none These functions run during rendering to determine progress or failure.

Step-by-Step Guides

Using The PrmanRender Node