Ear tangent space vector displacement map from Mudbox
Polygon plane displaced with ear vector displacement map

 

Traditional displacement maps are not used for any surface change that is not perpendicular to the base mesh’s polygons. Vector displacement maps can displace in directions other than the face normal, which is much more flexible. Vector displacement uses the color channels that specify a vector in a certain space to displace the vertices of the geometry in that direction and magnitude.

The ear vector displacement map can be downloaded here. The scene file can be downloaded here.



Displacement

This is a floating point value which is applied as a shift to the displacement amount. It defines the value of the displacement map that is considered to be zero displacement. This value can vary depending on how the displacement map has been generated.

Scale

Controls the amount of displacement. Displacement height can have either positive or negative values. This attribute only applies with normal displacement. You can use this value to compensate for any inconsistencies between the exported displacement map and the low-resolution geometry.

Color To Signed

For 8-bit maps. If enabled, the input is remapped to the [-1, 1] range.

The default values of these parameters (Order, Invert, Color To Signed) let you correctly import a map generated in Mudbox in tangent coordinate space.

Space

Can be World, Object, Tangent. This is the coordinate space where the vector is applied. The default is Object. If so, there are three ways of defining the tangent:

  1. Having a UV space, so that the shader can use the U derivative as the tangent direction
  2. Specifying a Tangent vector by hand (for instance 1,0,0 for a flat grid) or mapping it via a texture. This option is used if the Tangent vector is not null (0,0,0).
  3. Letting Arnold do its best to guess a tangent. The shader defaults to this option if there is no UV space and the Tangent is null.

Order

Lets you shuffle the input channels order.

Invert X/Y/Y  

If enabled, inverts (1-channel) the selected input channel. 

Tangent

Input attribute for connecting a tangent vector map.

Example Workflow

  • First, you must set the Subdivision Type of the object to Catclark and increase the Subdivision Iterations (Arnold Parameters > Subdivision). Start off with low values and steadily increase the number until you achieve a good quality displacement effect. Subdividing the base mesh is essential. Otherwise, you will start to see faceting and normal mismatch issues when using low polygon base meshes.


  • In this case, we have exported a preset vector map from Mudbox and rendered it with Arnold. It was exported as a 32-bit EXR image to retain the highest quality for the vector displacement effect.

  • Create an Arnold Shader Network Material with a standard_surface (Material Browser / Create > Arnold > Surface > standard_surface) and assign it to the plane.
  • Select the Arnold Material and click on Open network editor... to open up the Arnold Shader Network Editor.
  • Create a Vector displacement shader and connect its output port to the Arnold Displacement port.

Create Arnold Displacement port from the Arnold output port menu (red square).


  • Create an Image shader and connect its output to the Vector displacement attribute of the vector displacement shader. 
  • Under Image name, open the ear vector displacement map (EAR.exr). 
  • Select the vector displacement shader and increase the Scale to around 4.
  • Set the Vector space to Tangent.

Final vector displacement shader settings


The image is computed in tangent space, which works well in conjunction with deformed geometry (see the image below).




Further example: Sea waves are displaced using the vector map (right)

  • No labels