Introduction to Path Tracing and RIS in RenderMan

Taught by Christos Obretenov

Course Number:
Software Version:
Original Run Date:
July 2014 
7 hours 9 minutes 
With a new version of RenderMan (19) comes an additional completely different rendering architecture: path tracing (uni & bi-directional) in RIS mode, new BRDF's and Integrators wrapped in a new shading pipeline. With all this new stuff as well as support for the "classic" REYES rendering mode, prof Christos Obretenov will dig into definitions of core concepts and terminology, cover this paradigm shift with all the new features and workflows, as well as compare with the "classic" support of REYES rendering and compare the pros/cons of each within different contexts.

Course members also have exclusive early access to the beta of the new RenderMan through a special agreement with Pixar.

Obretenov has worked in a variety of roles, designing and developing shading software for Walt Disney's The Wild feature film, followed by shading and lighting for Superman Returns, Spider-Man 3, Beowulf, Christmas Carol, and Mars Needs Moms feature films.
Introduction to Path Tracing and RIS in RenderMan
Watch our overview of the course

Class Listing

Class 1

What's new and goals for the course. Outline of new features, definitions, and some of the things we'll be doing with them. Answering questions to "What is RIS & Path Tracing?".

Class 2

New Disney "principled" BRDF via "PxrDisney" shader: the paper it was based off, explanations, and render examples.

Class 3

We start off with illustrating the concept of bi-directional path-tracing, in the context of distributed ray-tracing and uni-directional path tracing. We look at diagrams and corresponding renders of how these different raytrace modes traverse and sample our scene with camera, light, and shadow rays. We then jump into a RenderMan Studio session with a new asset, the Stirling model provided by Pixar's RenderMan team, and start off by rendering in the REYES mode - we do this deliberately to segue into rendering in RIS with the same scene, and show how we have to re-assign all the new RIS/BRDF materials. This leads to focusing on the "Emissive" property of the PxrDisneyBRDF material, inspecting and experimenting with different sampling settings for ideal renders. We also render our "SmartCar" asset with the same material, adding metallic and anisotropic features of the PxrDisneyBRDF.

Class 4

We start off by continuing with our "emissive" geo/light source from the previous lesson, and animate the sphere geo to see its effect on the ground and our car model. Doing this we notice we're not getting indirect contribution from our emissive geo in the reflection sphere, so we cover how to set that with an attribute, both global and on a per-object basis, and how it looks like in our RenderMan RIB. Then we jump into exploring Path Tracing (uni-dir) vs VCM (bi-directional) in our scene with a high-contrast dome light, and find that using a lower contrast dome light source really makes a difference in reducing artifacts in our VCM. We then take our Path vs VCM into a "Cornell Box" scene, and see the nice subtle bounce we get from the VCM with an arealight, as well as nice handling of caustics and refractions through glass.

Class 5

We look at some important quality settings with both the Path Tracer and bi-directional VCM: Pixel Variance and Merge Radius Scale. We touch on comparisons of Pixel Variance to traditional RenderMan's PixelSamples setting when shading depth-of-field. To really see the features of the bi-directional VCM we explore a new interior scene setup with sharp caustics on glass and metals, and show how Merge Radius Scale affects the quality of our caustics and render time. Summarizing we see how the VCM works better on interior scenes with multiple dimly lit light sources, lots of bounce, and sharp caustics.

Class 6

We want to explore scenarios where the uni-directional Path Tracer simply doesn't find the path to the light, and where we need to use the bi-directional VCM. One great example for this kind of scenario is a "recessed lighting" example, where there is no direct visible path to the light source, it needs to bounce off multiple objects to connect with objects in the scene visible to the camera rays. We take a look at this scenario through some diagrams explaining the light paths, and the "vertex connection" part of the VCM. An even better example is putting a light source enclosed in a "frosted glass" housing, showing the VCM will find the light path but the uni-directional path tracer will not. Finally, we touch on the difference between an geometry sphere with "emissive" shader parameter, and a spherical area light.

Class 7

We start with a brand new scene: an interior "kitchen" with glass statue, to focus on the PxrGlass BxDF for this lesson. We go through each parameter of this material shader and focus on IOR, absorptionGain, and absorptionColor inside our new scene, noting the raytraced refraction and caustics with our PathTracer Integrator. We also look at the pros & cons of "internal RMS rendering" vs "external RPS rendering" while debugging our absorptionGain settings.

Class 8

We continue with glass shading with our PxrGlass BxDF, and dive into a more advanced topic of "Nested Dielectrics"! To work through this topic we need to use a scene from the RenderMan documentation page in RIS/Shading/Materials/Examples and step out side of RMS to render manually from the RIB file while examinining and tweaking the "intersectpriority" and "indexofrefraction" attributes in the RIB file. With these settings we do a few iterations of the glass/water/airbubble geometry in the scene to see the complex nesting of different dielectric materials. We also spend some time in this lesson on "setup scripts" to give you the tools to customize your work environment when running RMS & RPS.

Class 9

"Nested Dielectrics Part 2" is the main focus of this lesson, and we continue off the work we did in the previous lesson and answer some questions that came up, such as "How do we implement the RIB example from the docs in our own Maya/RMS scenes?" and "What if the attribute setting of indexofrefraction is different than the BxDF/shader IOR with respect to the intersectpriority?". We also break down exactly how we should set our "Max Path Length" on the Path Tracer Integrator, in conjunction with Max Spec/Diffuse Depth, when computing nested dielectrics.

Class 10

Subsurface Scattering with PxrSkin. In this lesson we start on a new topic, diving into the PxrSkin BxDF material on our new statue model. PxrSkin has a new approach to dialing the levels of subsurface scatter, by having a default Near/Mid/Far setting for Color/Weight/Length parameters, and letting the user dial these 3 layers individually for more artistic control. We compare this approach with the "classic" DMFP table for scattering materials such as skin/ketchup/marble/milk, while defining and exploring the colors, weights, and DMFP lengths for each layer. Looking at our turntable renders we can see the subtle scatter through our model resulting from the different approaches.