Houdini 17.5 Nodes VOP nodes

Tangent Normals VOP node

Exports shader normals as a render plane.

On this page

This node takes existing normals in the shader and outputs them as an optional parameter called export_normals. You can set this as an extra image plane in the render node to bake out normal maps.



Choose whether to output normals that have been modified by the shader, or output a difference between a high res and low res geometry.

Shader Normals

Output normals that have been modified by the shader.

Geometry Difference

Output normals in the space of the low res geometry using the high resolution geometry. Specify a low-res geometry using the UV Render Object render property on the render node. Both objects must be visible. This will lookup the normals from the high-res geometry and output them in the low-res geometry space.


When using "Geometry Different" with a high res and low res object, you should use a Peak SOP to prevent inter-penetrations artifacts in the normal map.


The coordinate system in which to output the normals. Use tangent space for deforming objects, so the normals stay relative to the moving surface.

Some target applications might require a certain space for tangent maps. Commonly, game engines and other real time systems use tangent space maps.


Map the normal data into specific range. Either -1 to 1 or 0 to 1.


The following examples include this node.

Street Crowd Example Example for Crowd Solver dynamics node

Crowd example showing a street setup with two agent groups

The setup creates two groups of agents. The yellow agents are zombies which follow a path of the street. The blue agents are living pedestrians that wander around until they come into proximity of the zombies and then they swtich into a running state.

Triggers to change agent states are setup in the crowd_sim dopnet. The zombies group uses proximity to the stoplights and the color of the light to transition into a standing state when lights are red. The living group transition into a running state when they get close to the zombie agents.


The animation clips need to be baked out before playing the scene. This should happen automatically if example is created from Crowds shelf. Otherwise save scene file to a location of your choice and click Render on '/obj/bake_cycles' ropnet to write out the files. The default path for the files is ${HIP}/agents.

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.

UnpackWithStyle Example for Unpack geometry node

This example demonstrates the Unpack SOPs ability to evaluate style sheet information while unpacking. Nested packed primitives are used to demonstrate partial unpacking while still preserving styling information. This example also demonstrates the use of a Python SOP to extract information from the per-primitive style sheets.

VOP nodes