"GP" Shading Nodes

"GP" Shading Nodes

Surfaces

The "RMS" surface nodes in Maya are designed for use as part of a comprehensive, "closed" shading system - lights working with shaders working with the radiosity cache, etc. Users may still use Maya lights, which might be faster in certain circumstances, but the full benefits of the system are derived from using the new RMS nodes. Users should note that these nodes are tuned for ray-traced shading.

RMSGPSurface

RMSGPSurface is a general purpose shader, in the tradition of Delux and APSurface, designed specifically to deliver physically plausible results while taking advantage of the newest technologies in RPS. RMSGPSurface uses the Oren-Nayar shading model for its diffuse component, has two specular lobes (the second is "off" by default) and a displacement "lobe", and it supports subsurface scattering and layering.

For more detailed information, see About RMSGPSurface. For a look at RMSGPSurface "in action", check out the RMS4 Shading Tour.

RMSGlass

A specialized glass material, RMSGlass also takes advantage of the recent ray tracing/"physically plausible" changes and improvements in PRMan. This node provides specific "glass parameters", a single specular lobe, and support for displacements.

Important Parameters

One of the most significant controls is the Internal Reflection Limit parameter. This parameter limits the number of internal reflection bounces. While internal reflections are critical to the look of the glass, at times they can be the source of significant noise in your renders with minimal improvements in quality. The default value is set to one meaning that internal reflections will not be computed at a specular depth of 1, effectively turning it off.

Another important knob is Importance Threshold. This control adjusts the way that the shader behaves when it is tracing internal reflections and refractions. When the importance of the rays drops below this threshold, only one ray path will be traced for each ray. The ray will statistically be chosen to be a reflection ray or a refraction ray. Rays with more importance will fire both a reflection and a refraction ray, increasing the number or rays by 2 at each ray depth. By switching to a path tracing strategy for less important rays we are able to decrease the ray count for deep ray depth.

Absorption using Beers law is also computed for the glass shader. There is a new switch that turns on this behavior called Compute Absorption. When this is enabled, the Glass Color will be used as the absorption value. Very pale colors will show the difference in absorption, based on the thickness of the material best. To make the image appear correct you may need to adjust the unit used for the calculation using the Absorption Unit Length parameter.

RMSHair/RMSShaveHair

RMSHair and RMSShaveHair provide Maya/Shave-friendly implementations of PRMan's physically plausible hair, using the stdrsl library's Hair.h. RMSHair also provides a special Fur Mode, so the same node can be used for fur or hair. RMSShaveHair includes special Shave-specific parameters.

RMSMatte

A simple diffuse material, with support for displacements and subsurface scattering.


Lights

As mentioned above, the new RMS surfaces will work with Maya lights, and, in some cases, may perform better, but by design they are meant to work cooperatively with these new RMS light nodes as part of the new shading system. Like the new surfaces, most of these nodes are intended for ray-traced workflows. Unlike Slim light shaders, which are attached to Maya lights, these nodes are actual lights, with graphical representations in the Maya UI.

RMSAreaLight

This node creates a RenderMan area light in Maya. It can take on various shapes: rectangle, disc, sphere, or "distant" (i.e. sunlight). Ray-traced shadows are enabled by default, though users will still need to turn on ray tracing in the Globals. The RMSAreaLight also supports adaptive shadows, light blockers, and co-shaders, and it can be single- or double-sided.

RMSCausticLight

The RMSCausticLight can be used to cast photons into a scene to produce caustics. Note that Caustic Controls will still need to be attached to your surface shaders and an appropriate shading model set therein.

RMSEnvLight

The RMSEnvLight, not to be confused with the RenderMan Environment Light, is used for direct global illumination, including Image-Based Lighting and so-called "occlusion". The RMSEnvLight can create an "ambient occlusion"-like effect via area shadows - using either ray-traced area shadows or traceable area shadow maps (right-click in the Light Attributes' Shadow Map parameter to create an rmanAreaShadowPass).

Note that Indirect global illumination, also known as color bleeding, is achieved via the RMSGILight (for ray-traced color bleeding) or the RMSGIPtcLight (for point-based color bleeding).

RMSGILight

The RMSGILight, as distinct from the aforementioned RMSEnvLight, provides ray-traced indirect global illumination, also known as color bleeding.

RMSGIPtcLight

The RMSGIPtcLight provides point-based indirect global illumination. Note that after creating the light you must choose a Bake Type (under the RMSGIPtcLight Attributes) and connect a pass of your choosing: RenderRadiosity ..., PartialFilterApproxGlobalDiffuse ..., and MakeFilterApproxGlobalDiffuse ....

RMSLightBlocker

The RMSLightBlocker creates a light blocker node in Maya. Implemented as a co-shader, the blocker can be attached to a light or a surface (via the Boundcoshaders attribute in the light/surface shader), can be a blocker or a window, and can be an arbitrary (2D) shape via the us of a texture map.

RMSPointLight

The RMSPointLight is a single-point implementation of the RMSAreaLight. By default, it is configured to compute ray-traced shadows (though ray tracing must be explicitly enabled in the Globals), but it can also be used to generate traceable area shadow maps via the Shadow Map parameter.


Paint Effects

RMSGPBrush

RfM supports "plausibly-shaded" Maya Paint Effects. A new version of the brush shader, RMSGPBrush, can now be selected to use a physically-based shader to render paint effects. In order to support a more physical lighting work flow, reliance on the ramp shader has been removed; the shader only supports standard Lambert shading and the Ashikhmin-Shirley specular BRDF.


Textures

rmanCellNoise

Creates a 3D cellnoise node that can be wired into a shading network, using the RSL noise() function. Note that it creates an associated place3dTexture node.

rmanImageFile

This node is used to reference a 2D texture (i.e. an image) for use in a shading network. It provides the basic essential texture controls. Note that a txmake or reference pass needs to be created if the map needs to be converted to an appropriate format. Right-click in the File field to create the pass.

rmanTexture3d

The rmanTexture3d node can be used to reference a brick map or point cloud for use in a shading network. An associated place3dTexture node is created simultaneously.

rmanWaveletNoise3d

Similar to rmanCellNoise, this node creates a 3D wavelet noise node, using the RSL wnoise function. It, too, creates an associated place3dTexture node.

rmanWorleyTexture

Creates a simple Worley texture for use in a shading network, with an associated place3dTexture node.


Shaders

RfM provides five nodes that are essentially containers for existing shaders: RenderMan Displacement, RenderManLight, RenderManShader, RenderManShaderObject, and RenderManVolume. These containers can point to arbitrary .sl files and can be augmented with additional RenderMan attributes, like Maya nodes. Additionally, these nodes provide basic control over Node Behavior (i.e. Caching and Node State).


Utilities

Utility nodes are provided for wiring in 2d/3d manifolds, primitive variables ("primvars") of the various supported types (color, floats, normal, point, or vector), arbitrary output variables (AOVS, or "secondary outputs"), masks, and even occlusion.