Image from Coco
If you just add some lights and some objects to a scene in RenderMan, it makes a picture, but the shapes are a solid color, and it only has the details that it was modeled with. Shading is a way to refine and enhance both the color and detail, turning clay-like models into imagery to match or exceed reality. Shading in RenderMan is divided into two domains: Space and Color. When RenderMan shades a 3D object, you are given the opportunity to refine the location of the final modeled surface in space in displacement shading. You are then given the tools to refine how an object interacts with light to define its color in material shading.
Displacement and material shading is described to the renderer via networks of interconnected nodes like textures connected to material properties. A value that varies over the surface of your object is called a shading signal, and these signals flow through the network connections to be created, altered, or mixed inside of the network nodes. In RenderMan, we further divide these networks into nodes that define the How and the What of your surface. Most of the network is full of Pattern nodes that describe the What – they help the shading artist control exactly what the signal values are at every point on the surface. At the very end of the network, the shading signals are fed into a Displace or Bxdf (material) node that define the How – they rely heavily on math and physics to define the spaces in which the surface positions are altered and the exact models with which the surface interacts with light.
The primary shading workflow is to work with a library of these nodes, connecting them together in different ways and tweaking their various knobs to achieve the looks you desire. RenderMan provides a core set of Displace and Bxdf nodes that represent the latest work in realistic surface models, along with a library of Pattern nodes that can be combined to replicate even the most complex surface appearance.
For advanced users, there are several options for creating your own nodes from scratch, these topics are not covered here and instead can be found in our Developer documentation.
Displacement shaders allow you to modify the geometry at render-time, effectively changing its shape. This way you can add more detail than was originally modeled. Often, this is where the fine detail that comes from sculpting tools is actually applied to the model. This is done by taking the surface information from the original model and moving it point-by-point. A Displace shader is the only thing that can perform this modification, but it can be told how much and in which directions to do the modification by networks of Pattern nodes or textures exported from sculpting software.
Materials in RenderMan are often referred to as Bxdf(s). A Bxdf describes the material to the integrator that determines the final rendered look. Since these are independent, users can change integrators and still use the same Bxdf to achieve a consistent or expected result. Imagine you've created a golden metal, if you were to render this in PxrPathTracer or PxrVCM, you would expect the material properties to still be seen as "gold" in the final image. This could even be extended to non-photorealistic and custom integrators that would render your gold Bxdf in new and interesting ways but would still be understood as gold (or golden) in the result. This is the power of material Bxdfs in RenderMan.
Below you will find links to the materials available in RenderMan categorized by common use.
PxrSurface and Layering - This is your ultimate material system for creating all the looks you should need. From skin to gem stones, PxrSurface handles complex looks through layering and artist driven parameters.
PxrVolume - A powerful and fast volumetric shader used for smoke, fire, explosions, and more.
PxrMarschnerHair - This material is designed for hair, fur, and fibers.
Basic Materials - These materials are designed for specific uses.
Patterns are also useful for altering the shading of materials. They can be used to change the result directly (maybe you wanted a checkered floor) or use them to drive other parameters like using PxrFlakes to create metallic paint!
RenderMan comes with an extensive list of patterns and utilities for combining into useful looks.