Houdini 21.0 Nodes VOP nodes

MtlX Normalmap VOP node

On this page

Transform a normal vector from object or tangent space into 'world' space.

Tips

  • Shaders importing normal map images must be vector3, and not color3.

  • Feed images from a Mtlx Image through this node, and into the normal input on Mtlx Standard Surface

MikkT normal maps

The normal map node takes the input normal and transforms it by the basis that’s formed by the shading normal, tangent and bitangents. However, when dealing with MikkT tangent space normal maps, you have to consider several things. There’s a recipe to add the karma_mikkt shader property. You can execute the recipe when you right-click the node and choose Recipes ▸ Karma MikkT Normal Map.

This property indicates that the tangent space normal map input should be treated as a MikkT tangent space normal map. In this case, the tangentu and signs attributes/primvars will be used to properly define the basis. If Karma MikkT Normal Map is turned off (or not present), or the tangentu primvar doesn’t exist, then the map is interpreted as a Karma-specific tangent space normal map (if the signs attribute/primvar isn’t present, it will default to -1).

  • For a Karma-specific tangent space normal map, Karma will use it’s default tangent shading frame to apply the normal map operation.

  • To make Karma-specific tangent space normal maps work in Houdini VK, the tangentu primvar must exist. You can create the primvar through the Poly Frame SOP. There, choose the Tangent UV Gradient style. Then use a Geom Prop Value to read that primvar, and wire it into the tangent or geometry_tangent inputs on your surface shader.

Note

When you're on the obj level, you can also create MikkT tangents in the Display Options. On the viewport, press D to open the panel. Under Geometry ▸ Normals & Tangents, set Auto Generate Tangents to MikkT. Please note that auto-generated MikkTs might not be as accurate as those from the Poly Frame SOP.

Parameters

In

Input normal vector signal.

Space

The space to transform the normal from ('tangent' or 'object'); defaults to 'tangent'. Currently ignored by Hydra.

Scale

A scalar multiplier for the (x,y) components of the incoming vector; defaults to 1.0

Normal

Surface normal; defaults to the current world-space normal.

Tangent

Surface tangent vector, defaults to the current world-space tangent vector.

MikkT Tangent Space

This parameter is only avaiable through a recipe on the node. When you turn on the feautre on, the tangent space normal map input will be treated as a MikkT tangent space normal map.

Outputs

Out

World space normal signal.

VOP nodes