The Shader Library

 
 
 

Every node that appears in the render tree is color coded to identify it as a member of a particular shader family. A shader family indicates how a shader can be used in a render tree. Different shader families enforce different connection restrictions. For information, see Shader Families and Node Colors.

The most frequently used shaders can be quickly and easily accessed from The Preset Manager where they are divided into several different categories to help you identify the type of effects or tasks you can achieve with them.

Shaders are also accessible from the browser, an explorer view, or the Nodes menu in the render tree view.

The actual preset files for all shaders available in the library (including those that are installed for compatibility with older scenes) are stored in numerous sub-directories under the <install directory>/DSPresets/Shaders folder.

The parameters of a shader are edited through its property editor (see Detaching Shaders). Detailed descriptions of the parameters for each shader can be found by clicking the ? icon in the shader's property editor or searching for the shader by name in the Shader Reference.

Surface Shaders

Surface shaders are one of the most important types of shaders. They determine the basic color of a geometric object. Surface shaders are also responsible for casting reflected, refracted, and transparency rays. For more information on surface shaders and how they are used, see Working with Surface Shaders.

 
 

Surface shader node color in the render tree.

Texture Shaders

2D texture shaders apply a two-dimensional texture onto an object, just as 3D texture shaders implement a three-dimensional texture into an object. They are used by a surface shader when an object has a defined texture.

Texture shaders also include the necessary shaders to create bump maps. For more information on texturing concepts, see What's in a Texture?.

 
 

Texture shader node color in the render tree.

Realtime Shaders

Realtime shaders allow you to build and control the multipass realtime rendering pipeline, using the render tree. You can connect these shaders together to achieve a multitude of sophisticated rendering effects, from basic surface shading to complex texture blending and reflection. For more information, see Realtime Shaders.

 
 

Realtime shader node color in the render tree.

Light Shaders

Light shaders implement the characteristics of a light source. For example, a spotlight shader uses the illumination direction to attenuate the amount of light emitted. A light shader is used whenever a surface shader uses a built-in function to evaluate a light.

If shadows are used, light shaders normally cast shadow rays to detect obscuring objects between the light source and the illuminated point.

For the available lens shaders in the library, see Light [Shader Reference]. For information about lights in general, see Lights [Direct Illumination].

 
 

Light shader node color in the render tree.

Lens Shaders

Lens shaders are used when a primary ray is cast by the camera. They may modify the ray's origin and direction to implement cameras other than the standard pinhole camera and they may modify the result of the primary ray to implement effects such as lens flares or a cartoon effect.

For the available lens shaders in the library, see Lens [Shader Reference]. For information on working with cameras, see Cameras [Cameras and Motion Blur].

 
 

Lens shader node color in the render tree.

Volume Shaders

Volume shaders modify rays as they pass through an object (local volume shader) or the scene as a whole (global volume shader). They can simulate effects such as clouds, smoke, and fog.

For the available volume shaders in the library, see Volume [Shader Reference]. For more information on how to apply volume shaders, see Volume Effects.

BBC "Everyman": Animation by Aldis Animation

 

Volume Shader node color in the render tree.

Output Shaders

Output shaders operate on images after they are rendered but before they are written to a file. They can perform operations such as filtering, blurring, compositing with other files, and writing to different file formats. For the available output shaders in the library, see Output [Shader Reference].

 
 

Output shader node color in the render tree.

Processing Shaders

Shaders in the Processing category are tools that let you extend and manipulate the data in your render trees. Although some of these shaders can be used on their own, many of them must work in conjunction with another to achieve a highly customized effect. They each have a specialized function:

  • Color Channels manipulate red, green, blue, and alpha components of a color. See Picker.

  • Conversion changes one value to another. Especially useful for changing a scalar-type node to a color one. Scalar, color, vector, Boolean, and integer nodes can be converted to any other type of output using these tools. See Processing > Conversion.

  • Image Processing defines, manipulates, and tweaks color and scalar values. See Color Balance.

  • Map Lookup extracts weight, texture or vertex maps so they can be used with blend, mix, or share shaders to drive other shader parameters. See Boolean Map Lookup.

  • Math performs math functions such as interpolation, multiplications, additions, and exponential functions. See Color Average.

  • Mixers uses one or several equations to mix a few or several colors or textures into a single color output. See Processing > Mixers.

  • Share coordinates the sharing of a single value among several others. See Boolean Passthrough.

  • Switch changes an object's color based on location, angle of view, or another specified value. See Front - Back Switch.

 

Most tool shaders are implemented as texture shaders.

Environment Shaders

Environment shaders are used instead of surface shaders when a visible ray leaves the scene entirely without intersecting an object or when the maximum ray depth is reached. For example, an environment shader might evaluate a texture mapped on an imaginary infinite sphere enclosing the scene. Environment shaders can also be used to light a scene with a high dynamic range image, see Using Environment Maps to Light a Scene [Image-Based Lighting].

For the available environment shaders in the library, see Environment [Shader Reference].

For information on environment shaders in general, see Using Environment Map Shaders [Texturing].

 

Environment shader node color in the render tree.

Lightmap Shaders

Lightmap shaders are used to sample object surfaces and store the result in a file that can be used later. For example, you can use a lightmap shader to bake a complex material into a single texture file. Lightmaps are also used by the Fast Subsurface Scattering and Fast Skin shaders to store information about scattered light. For the available lightmap shaders in the library, see Lightmap.

 

Lightmap shader node color in the render tree.

Material Phenomena

Material phenomena are predefined combinations of shaders, usually designed to create complex rendering effects, that are packaged as single shader nodes. Connecting a material phenomenon to an object's material prevents the material from accepting any other shaders directly, though you can extend the phenomenon's effect by driving its parameters with other shaders.

The Fast Subsurface Scattering and Fast Skin shaders are examples of material phenomena. For more information about these shaders, see Fast Subsurface Scattering Effects [Materials and Shaders].

 
 

Material phenomenon node color in the render tree.

Geometry Shaders

Geometry shaders are evaluated before rendering starts. This allows the shader to introduce procedural geometry into the scene. For example, a geometry shader might be used to create feathers on a bird or leaves on a tree. For more information, see Geometry Shaders.

 

Geometry shader node color in the render tree.