Overview of Building a Render Tree

The render tree workspace is where you can connect shader nodes together to build trees. The nodes in the tree can be shader nodes or shader compound nodes. Shader compounds are built from shader nodes and possibly other shader compounds.

You extend shaders by using the outputs from one shader as the inputs for one or more shader parameters. Since each node can have multiple outputs and inputs, you can connect a nearly endless number of nodes together. For example, you can use a 2D or 3D texture to control a material shader's reflectivity and another texture to control its specularity.


Material node — see The Material Node.


Shader node — see The Material Node.


Shader input port — see Ports for Parameters: The Ins and Outs.


Shader output port — see Ports for Parameters: The Ins and Outs.


Connection arrow — see Connecting Nodes.


Port group — see Dynamic Input Ports and Port Groups.


Texture Layer — see About Render Tree Nodes.

Follow these basic steps for creating a render tree and see the corresponding sections for information on each step:

  1. Select an object and open a render tree — see Texture Layers in the Render Tree below.

  2. Bring shaders into the render tree workspace — see Connecting Shader Nodes.

  3. Connect the shaders together the way you want. Certain restrictions apply to what you can connect together — see The Material Node and then Connecting Nodes.

  4. If you like, you can make shader compounds, which are groups of shaders contained within a single node — see Shader Compounds.

Opening the Render Tree

There are several ways to display the render tree view:

  1. Select the object whose render tree you want to open.

  2. Do either of the following:

    • To open it in a floating window, choose View Rendering/Texturing Render Tree or press 7.


    • To open it docked in a viewport, choose Render Tree from the Views menu.

You should see the selected element's material node, and any connected nodes, displayed as a render tree.

  1. Click the Update icon to show the shader nodes available for that object.

Realtime Shaders and the Render Tree

Realtime shaders are designed to take full advantage of the render tree. In fact, the render tree is the only place where you can connect them to one another.

In most ways, realtime shaders look and behave like mental ray shaders in the render tree, but there are some differences. As such, there are a few things you should keep in mind when building realtime shader trees. For details, see Realtime Shaders vs. Mental Ray Shaders [Realtime Shaders].

Texture Layers in the Render Tree

When a shader has one or more texture layers, a new section called Layers is added to its node in the render tree. The Layers section contains a port group for each of the shader's layers. Expanding the Layers section reveals all of the individual layer port groups. Expanding an individual texture layer's port group reveals the ports for its Color and Mask parameters.


Ports that have been added to layers are marked with a small blue "L".


Layers section of node


Collapsed layer port group


Expanded layer port group.


Layer Color and Mask ports.

Layers behave exactly like any other port group in the render tree, meaning that you can connect shaders to texture layer parameters as you would to any other shader parameters. This allows you to control each texture layer with its own branch of the render tree!

For more information about layering textures, including how to work with texture layers in the render tree, see Blending Textures with Texture Layers [Texturing].

For more information about collapsing and expanding texture layers in shader nodes, see Collapsing and Expanding Port Groups and Texture Layers.