Houdini 20.0 Nodes Shader nodes

Material shader builder shader node

A higher-level shader that can contain one or more sub-shaders, such as surface shaders, displacement shaders, and property shaders.

On this page
Since 11.0


The Material node is a container for other shader types, letting you “package up” combinations of lower-level shaders (such as surface shaders and displacement shaders) with individual settings into a new “look” you can assign as a single unit.

The gallery of materials in the material palette pane are all customized examples of the Material shader. See the documentation for the gallery materials that ship with Houdini.

It is necessary for some nodes to specify the context in which they belong.

  • Global VOP provides global variable for the specified context type.

  • Output VOP provides output variables to assign for the specified context type. The material knows which shader types the network implements by inspecting the context type for the Output VOPs.

  • Parameter VOP specifies the context in which it exports the variable, if it is indeed exporting at all.

Creating and editing materials

Through Houdini’s parameter editing interface, you can promote parameters from contained shaders onto the material, letting you create a material with a custom interface, where users can manipulate some of the underlying parameters but others are kept hidden.

To...Do this

Create a new Material from scratch

In the network editor, Go to the /shop level and create a Material node, then double-click the node to go inside. Create and edit shader nodes inside the material and connect them to the special “suboutput” node.

Customize an existing material from the gallery

Click the Material Palette pane. Drag one of the materials from the gallery (on the left) into the list of shaders in the scene (on the right). Then you can edit the material’s settings, edit the shaders inside, or edit its interface.

See the material palette documentation for more information.

Promote parameters from contained shaders onto the Material node

In the material’s parameter editor, click the Gear icon and choose Edit parameter interface. Under Create parameters, click the From nodes tab, then drag parameters from shaders inside the material into the Existing parameters list to promote them.

See the parameter editing window documentation for more information.

Override a material’s settings per-object or per-primitive

See rendering properties.


Time is the motion blur shutter time for the shader execution, which is a value between 0 to 1 for shader motion blur (it’s not the same as $T). Time is initialized to 0 for micropolygon rendering, since all shading occurs at the start of the frame. To use Time for motion blur calculations, you’ll need to render with the ray tracing engine which executes shaders once for every pixel sample.

Shader nodes