On this page |
Overview ¶
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.
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 |
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. |
Examples ¶
Down Hill Lava Flow Example for Material shader node
In this file we create a downhill lava flow with crust gathering and hardening at the base of the slope. All of the animation is achieved through the shader itself, and all of the geometry is completely static.
Note
Most of the parameters for the lava material are overridden by point attributes created in the surface nodes.
FirePit Example for Material shader node
Note
No geometry is animated in this file. All animation is achieved by animating the textures
Flames are grids so that UV textures can easily be applied, they are then warped around a metaball using a magnet SOP. The flames are then assigned to either a yellow or blue Flames texture. The Flames' opacity mask wrap is set to Decal to prevent the texture from repeating and showing a single pixel ring at the top of the flame geometry. I'm also using a mask file named flameOpacMap.jpg
to enhance the flames' shape at the top. The noise offset has been animated over $T
with an greater emphasis on the Y axis so that the flames look like they are rising. This is the same reason the Noise jitter is larger for the Y axis as well.
The coals are spheres that have been copy stamped onto a deformed grid. Using Attribute Create surface nodes I am able to override and copy stamp the lava texture’s parameters at the SOP level so that local variables, such as $BBY
, can be used to animate the texture. This way the texture’s crust and its crust values can be used only to form the tops of the coals. This reserves the lava aspect of the texture to be used on the bottoms of the coals. The lava intensity (Kd
attribute) is then stamped and animated to create the look of embers on the bottom of coals glowing.
StyleDisplacement Example for Material shader node
This is an example file showing an object made up of two quads, one with a bump map, the other with true displacement. This object is duplicated, and the second copy uses a style sheet to reverse the material assignments on the two quads.