Rendering surfaces in RenderMan relies on a layerable material (See Input Material below) called PxrSurface.
This is the same material model used in Pixar Animation Studios' feature animation. As such there are some important benefits to this material:
- A single material handles all your looks like:
- Car Paint
- and many many more!
- Physically based presets provided to get you started.
- Flexible controls are not required to result in something physically plausible.
- Artists can selectively "break" energy conservation.
- Art direction becomes natural without workarounds.
- Controls are conveniently labeled as "Artistic" and "Physical"
- Layering provides limitless possibilities.
As an artist, being able to choose a single material for all your shading eliminates guesswork and allows RenderMan to optimize as needed. We discuss all the different settings and their relevance to making certain materials. Pay special attention to notes about performance considerations as well as hints on what combinations will be useful for particular effects.
Below you will find each effect or lobe of the material has been separated into its own section to help users define the area they wish to learn about. However, as different lobes are activated and tweaked, the material will change looks. It's by combining these lobe settings that you can make just about any material you imagine.
Connect to a layer pattern that layers the parameters for the Bxdf. This lets users create more complex looks through layered effects. Examples might be dust, scratches, or even labels.
In the parameters below, some of them can be overridden by a PxrLayer when connected to the Input Material or through a PxrLayerMixer. PxrLayerSurface is designed to better illustrate which parameters are not able to be overridden in a layer by including only parameters that are global. We recommend this material when you know you will be layering. The results of these settings are unchanged.
- Bold Face parameters are layerable, able to be overridden per layer.
- Italicized parameters are not able to be layered or overridden. These are globally obeyed for all layers. For example: Choosing GGX as a specular model will mean all layers will be GGX for that parameter.
This section provide global controls for the entire material. For example, if a Bump is only supplied here, it applies to all the above lobes. Presence is also a global parameter that will mask out or "cutout" all the lobes as-if the object isn't present where the mask has a value of 0.0
Normal/Bump to use for all lobes unless it is overridden by the individual lobe's bump normal.
Connect a mask here to apply a cutout pattern to your object. This is useful for cutouts like creating leaves and other thin, complex shapes. It can also be used as opacity for gray values for semi-opaque results when seen directly by the camera.
- This is ignored for non-thin glass refraction and "thick" style objects where color is attenuation through the interior
Specify whether presence is cached or not. When cached is on, presence will be evaluated per micropolygon as opposed to per shading point when cached is off.
- Since presence computation can be expensive, if there is a heavy shading network such as texturing, then caching is advantageous for better rendering speed though it increases memory.
- Because caching is essentially stored at the tesselation level, if we need finer render details, uncached presence is recommended since it evaluates per shading point.
- There is a trade off between memory and speed. If we have a very simple presence such as a constant value, cached and uncached could be almost equally fast and save some memory. Note that if presence is at constant 1.0 (which is the default), PxrSurface optimizes all of this.
- When subsurface or single scattering is on, to avoid artifacts (related to volume tracking), PxrSurface forces uncached presence internally (ignoring the parameter setting of Presence Cached).
- For similar reasons, PxrSurface ignores presence, cached or not cached, for non-thin glass refraction.
- The integrator may control the maximum depth at which opacity is not stochastic (noisy)
Shadow opacity computation mode:
- Shader and shadow color
- Shadow color only
Specify shadow color. This parameter is useful for faking a shadow color for art direction purposes. Note that changing the shadow color may impact performance and the result of global illumination as it is treated as a transparent shadow (think of colored glass), even for opaque objects.
Specify a pattern node for output. For example: One can connect a PxrMatteID to this parameter to output an ID AOV. Or another pattern can be output such as a texture.
Enable Manifold Exploration/Walk
Only available when using the PxrUnified Integrator and the option for Enable Manifold Walk set to ON. This setting should be on for objects intended to catch caustic light paths. Like a diffuse service inside a specular object.
Specular Curvature Clamp
Specify a color or pattern to be rendered to the userColor Lobe that can be output using LPE as a utility. This connection or color is not rendered in the beauty and is meant to output AOVs useful for compositing or adjusting in post
Below are the named and user lobes from PxrSurface.
Named Diffuse Lobes
Named Specular Lobes