Houdini 17.0 Nodes Shader nodes

VOP VEX Surface shader node

A shader node containing a surface shader VOP network.

On this page

This SHOP (shader) node type contains a VOP network in which you can define a mantra surface shader using VOP nodes.



The parameters on this tab define how surfaces with this shader look in the viewport.



This text box contains the vcc command line used to compile the VOP network into VEX object code. It allows advanced users to specify their own command line options or call a wrapper script instead.


The following examples include this node.

FlipFluidWire Example for FLIP Solver dynamics node

This example demonstrates the use of the Flip Solver and the Fluid Force DOP. The Fluid Force DOP is used to apply a drag force on a wire object according to the motions of a flip fluid. The drag force is only applied at locations where fluid exists in the fluid object.


This example highlights several features:

  • Geometry area lights

  • Attenuation ramp controls

  • Surface model specular layers

The example consists of a geometry light based on a wireframe of nurbs curves. The attenuation on the light uses colored keys, allowing for different light colors to be produced at different distances from the light. The ground plane shader uses a surface model with two specular components - one wide component and another narrower glossy component to give a multi-layered appearance.

IndirectLightBox Example for Indirect Light object node

This example shows how to set up the indirectlight object for indirect diffuse lighting. The scene consists of a box that has been extruded several times, containing a light source and the camera. The light has been placed so that all light reaching the camera must bounce more than once inside the scene before reaching the camera. The indirectlight object is configured to generate 1000000 photons. To visualize the photon map, change the rendering mode on the light to "Direct Global Photon Map". To adjust the sampling quality, modify the pixel samples or ray samples on the mantra ROP. The rendering engine used in this example is PBR.

StickyDonut Example for Sticky object node

In this example, a donut is stuck to an animated sticky object on the surface of a grid.

MotionVector Example for Mantra render node

The example demonstrates how to generate a motion vector layer for post-velocity compositing. Load the example and render 5 frames. Then in the image viewer, switch from 'C' (colour) to 'motion_vector' to see the results.


This example demonstrates the use of ramps and referenced ramps which are animated over time.

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.


Most of the parameters for the lava material are overridden by point attributes created in the surface nodes.

FirePit Example for Material shader node


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.

VolumeNoiseIso Example for Mantra: VEX Volume Procedural shader node

This example shows how to render an isosurface defined by a cvex shader using mantra’s volume rendering capabilities. A noise field is generated by a cvex shader, which is attached to the VEX Volume Procedural. The volume is shaded by finding the surface where the density crosses 0, and then shading using a simple surface shader that shows the normals.

FluffyTorus Example for Bake Volume geometry node

This example shows how to setup the Bake Volume SOP to compute the lightfield created by the shadowing of a fog volume. It then exports the fields properly to be rendered in Mantra by a constant volume shader.

FurBallWorkflow Example for Fur geometry node

This example demonstrates how the Fur SOP and Mantra Fur Procedural can be applied to an animated skin geometry. CVEX shaders are used to apply a custom look to the hairs based upon attributes assigned to the geometry.

FurPipelineExample Example for Fur geometry node

This example illustrates how custom shaders can be used to define the appearance of fur generated by the Fur SOP.

FurTextureMap Example for Fur geometry node

This example demonstrates how to use a texturemap to color fur.

PointCloudWrite Example for Point Cloud Write VOP node

This example shows how the pcwrite vop can be used to write out points to a point cloud file. Render the mantra1 ROP to generate the point cloud, then view the point cloud with gplay. The distribution of points will depend on where mantra shaders are executed - in this case, the mantra ROP is configured to shade hidden surfaces allowing the back faces of the sphere to generate points.

RaytraceVopShader Example for Ray Trace VOP node

This example demonstrates a simple ray traced shader using a vop vex network. To modify the shader properties, create a properties shader in the material and connect it to the output shaders node. You can then add rendering parameters to the properties node. For example to control the number of reflection bounces, you would add the reflect limit parameter.

See also

Shader nodes