Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Contents

Image from Incredibles 2

PxrUnified is initially included in RenderMan as an experimental integrator. Eventually this integrator will become full-featured and ready for reliable production rendering.

Note that PxrUnified does not support the holdout workflow in this version.

 

PxrUnified is the integrator Pixar relies on for it's own film and animated shorts. It implements both the forward path tracing algorithm and bidirectional choices along with selective "cheap" caustics using the Manifold Next Event Estimation technique called Manifold Walk here. We also include the options for Indirect Guiding that improves indirect lighting by sampling from the better lit or more important areas of the scene. 

For direct illumination, the numLightSamples and numBxdfSamples parameters determine the number of light vs. Bxdf (material) direct illumination samples, and the resulting direct illumination contributions are combined using multiple importance sampling.

For indirect illumination, the numIndirectSamples parameter controls the number or rays sent for sampling indirect like paths.

SubSurface Over-sampling is used to help reduce the noise when rendering complex lighting and objects with subsurface shading enabled.

Note that the Max Path Length is the single control used to control global trace depth, PxrUnified ignores the settings for separate specular and diffuse trace depth. The implication is that a simpler control is intuitive but some scenes may take longer to render and appear differently than in other integrators where users have optimized the bounces based on their scene. Setting the control to 0 means only direct lighting and camera visible effects. Increasing the setting allows light to travel further into and off of objects in the scene.

 

Parameters

ParameterDescription
traceLightPaths

This enables bidirectional path tracing modes. PxrUnified has 4 integration modes, based on how light paths are sampled:

  • Off
    • Unidirectional path tracing, like PxrPathTracer
  • On
    • Bidirectional path tracing, like PxrVCM with connect on and merge off.
  • Photons Only
    • Progressive photon mapping, like PxrVCM with connect off and merge on.
  • UPS/VCM
    • Bidirectional path tracing with progressive photon mapping, like PxrVCM with connect on and merge on.
maxPathLength

Controls the absolute upper bound on the maximum ray depth. For example, a value of 0 for this parameter will allow direct illumination only, while a value of 4 will permit up to 3 bounces of global illumination. Default value is 8. Ray Depth per diffuse or specular interaction is ignored.

maxRayDistanceThis controls the distance (in scene units) an indirect ray will travel before being terminated. If your scene scale is such that objects far from one another would not visually interact indirectly you can use this to optimize the scene. Note that rays traveling through windows and other objects are indirect rays and may be terminated too early and disappear from glass refraction. (Imagine a render where you view a mountain range through your living room window, be sure these rays reach far enough.)
catchAllLightsOn the last hit, evaluate the lights without shadowing, the default is off (0.0). If you find refraction goes dark, setting this slider to 1.0 adds the full contribution of the light samples. Turning this on may brighten your scene.
emissionMultiplierMultiplies all emissive and "glow" properties set on materials and lights.
accumOpacity

Controls whether or not the path tracer will keep track of accumulated opacity along the path. The default is off. If you plan to render refractive objects and care about alpha values for compositing, you might want to turn this on, car windows for example.

specularCurvatureFilterFilter the roughness for specular interactions, setting it to 0.0 is no filtering or "ground truth".
numLightSamples Controls the number of light samples for direct illumination per camera hit point. The default is 1. Small numbers may improve performance of interactive and progressive updates. Larger numbers may appear to converge better while being slower to update.
numBxdfSamplesControls the number of Bxdf samples for direct illumination per camera hit point. The default is 1. Small numbers may improve performance of interactive and progressive updates. Larger numbers may appear to converge better while being slower to update.
numIndirectSamplesControls the number of Bxdf samples for indirect illumination per camera hit point. The default is 1. Small numbers may improve performance of interactive and progressive updates. Larger numbers may appear to converge better while being slower to update.
sssOversamplingControls the number of subsurface rays to spawn per camera hit point. The default is 8.
allowMultilobeIndirect 
rouletteDepthControls the ray depth to begin performing Russian Roulette. Russian Roulette may terminate rays after this depth especially if they contribute little to the result. The default is 1.
rouletteThresholdControls the path throughput threshold below which to perform Russian Roulette. This controls at which point the contribution of the ray is unimportant enough to terminate the ray. The default is 0.2.
directClampSets the amount where values will be clamped, for direct lighting the default is high to preserve the dynamic range of a scene's lighting. Lowering it will reduce noise like fireflies at the cost of dynamic range. The default is 1000000.0
indirectClampSets the amount where values will be clamped, for indirect lighting the default is low, this avoids noise in secondary effects that have already absorbed some energy anyway. Lowering it will reduce noise but also darken indirect effects. The default is 8.0
causticClampSets the amount where values will be clamped, for caustics the default is high to preserve the light patterns that result from light focusing off of or through objects. Lowering it will reduce noise like fireflies at the cost of dynamic range. The default is 1000000.0

 

Standard AOVs

On top of regular LPE-based AOVs, this integrator outputs a number of standard AOVs typically used by compositors.

DeclarationContentsChannels
color __PworldP in world-space
__Pworld.r : x component
__Pworld.g : y component
__Pworld.b : z component
color __NworldNn in world-space
__Nworld.r : x component
__Nworld.g : y component
__Nworld.b : z component
color __depthMulti-purpose AOV
__depth.r : depth from camera in world-space
__depth.g : height in world-space
__depth.b : geometric facing ratio : abs(Nn.V)
color __stTexture coords
__st.x : s
__st.y : t
__st.z : 0.0
color __PrefReference Position primvar (if available)
__Pref.r : x component
__Pref.g : y component
__Pref.b : z component
color __NrefReference Normal primvar (if available)
__Nref.r : x component
__Nref.g : y component
__Nref.b : z component
color __WPrefReference World Position primvar (if available)
__WPref.r : x component
__WPref.g : y component
__WPref.b : z component
color __WNrefReference World Normal primvar (if available)
__WNref.r : x component
__WNref.g : y component
__WNref.b : z component