Houdini 17.0 Nodes VOP nodes

Principled Shader VOP node

An artist-friendly shader that can model a large number of materials realistically.

On this page

The goal of this shader is to produce physically plausible results while using intuitive rather than physical parameters. A large number of materials can be created with relatively few parameters. All parameters are in the zero to one range and represent plausible real-world values within that range.

Parameters

Base Color

The overall color of the surface. Depending on other parameters, this can have different effects.

When Metallic is 0.0, Base Color controls the color of diffuse reflections. Use Reflect Tint to also tint reflections.

When Metallic is 1.0, diffuse is faded and Base Color only controls the color and intensity of reflections.

Use Sheen Tint to tint the Sheen effect with the Base Color.

Metallic

Values closer to 1 give the shader a more metallic appearance.

This is done by fading out the diffuse component and driving reflectivity by Base Color. This makes it easy to create the colored reflections typical of metallic materials.

Reflectivity

Controls the reflectivity of surfaces facing the viewer. This replaces the Index of Refraction parameter found on other shaders to allow for more direct control over visual appearance.

When a surface is rotated away from the viewer, more and more light is reflected regardless of this parameter’s value. At 90 degrees away from the viewer, 100% of the light is reflected, as in the real world.

Tip

How shiny an object appears mostly depends on it’s Roughness rather than it’s Reflect value. When you intend to vary shininess using a texture, Roughness is usually the better parameter to use.

Note

For additional artistic control, you can disable reflections completely by setting Reflect exactly to 0.0. When using a texture, this effect also occurs in completely black areas of the texture.

The effect of Reflect on a black object in a white environment. Note how reflections at the edges are not affected unless Reflect is exactly 0.0.

Note

The effect of this parameter diminishes with increasing Metallic values, since metallic reflectivity is tied to Base Color.

Reflect Tint

Tints reflections with the Base Color. This is not typical of non-metallic materials, but can be used for artistic purposes.

Note

The effect of this parameter diminishes with increasing Metallic values, since metallic reflections are always tinted by Base Color.

Roughness

Controls how dull a surface appears. A value of 0.0 results in a smooth surface with perfectly sharp reflections. A value of 1.0 produces a completely dull surface. Under the hood, this simulates microscopic bumps which become more pronounced the higher the Roughness, causing reflected light to be scattered more.

The effect of Roughness on a material with Metallic set to 1.0:

The effect of Roughness on a material with Metallic set to 0.0:

Anisotropy

Causes reflections to be stretched in the direction defined by Anisotropy Direction.

This simulates microscopic bumps with a directional bias, causing light to be scattered more in the defined direction. This is typical of brushed metals.

The effect of this parameter increases with Roughness. It has no effect at all when Roughness is 0.0.

Anisotropy Direction

Controls the direction of Anisotropy relative to the UV coordinates of the surface. At 0.0, reflections are stretched in the U direction. At 0.5, the direction is rotated by 90 degrees to the V direction. 1.0 equals 180 degrees. Since the effect is symmetrical this produces the same result as 0.0.

The direction of rotation also depends on the UV layout. When the UVs are layed out such that textures appear on the surface without mirroring, higher values rotate counter-clockwise.

The effect of this parameter diminishes with decreasing Roughness and Anisotropy.

This parameter has it’s own Filter Type parameter which appears when Use Texture is enabled. This defaults to Point (No Filter), which usually works best. When you change this to an actual filter like Gaussian, artifacts may appear around the transition between areas with different direction values.

Tip

The 0-1 range makes it easy to apply a texture to this value. To find the texture value needed for a certain direction:

  • Turn off Use Texture under Anisotropy Direction.

  • Try out values on the slider and kick off test renders until you get the desired result.

  • Paint the slider value into your texture.

  • Turn Use Texture back on.

To help with this workflow, the Anisotropy Direction remembers it’s value whenever Use Texture is toggled. It defaults to 1.0 when Use Texture is enabled, meaning you get the unmodified texture data.

Subsurface

Gives the appearance of subsurface scattering. This is a fast approximation and doesn’t perform actual SSS.

Note

The effect of this parameter diminishes with increasing Metallic values.

Sheen

Produces extra reflections at grazing angles, which can be useful to match certain cloths and some other materials.

Note

The effect of this parameter diminishes with increasing Metallic values.

Sheen Tint

Tints reflections produces by Sheen with the Base Color. This can help with matching certain cloth materials.

Note

The effect of this parameter diminishes with increasing Metallic values.

Coat

Controls the intensity of coat reflections. The coat can have a different Roughness value than the base layer, see Coat Roughness.

Coat Roughness

Controls the roughness of Coat reflections.

Emission Color

The color of light emitted from the surface.

Emission Illuminates Objects

Controls whether emission should illuminate other objects.

Diffuse Label

Specifies a label for the diffuse component. This can be used to export contributions from this component to a separate image plane.

Base Reflection Label

Specifies a label for the base reflection component. This can be used to export contributions from this component to a separate image plane.

Coat Reflection Label

Specifies a label for the coat reflection component. This can be used to export contributions from this component to a separate image plane.

Note

The example images above use HDRIs from hdrihaven.com.

Inputs

baseN

The normal of the base layer. The base layer includes everything but coat reflection. If not connected, the global variable N is used.

coatN

The normal of the coat reflection layer. If not connected, the global variable N is used.

utan

The main surface tangent. This is used to compute the direction of anisotropy, anisodir is relative to the orientation of this vector.

Must be normalized and tangential to the shaded surface.

Tip

The Compute Tangents VOP offers various methods of computing suitable surface tangents.

vtan

The surface bitangent. Must be normalized and perpendicular to both baseN and utan.

Tip

The Compute Tangents VOP offers various methods of computing suitable surface tangents.

See also

VOP nodes