Vector Displacement

 

Traditional displacement maps are not useful 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 Maya scene file and ear vector displacement map can be downloaded here.

When using Color Management in Maya (2017), vector displacement maps should be set to RAW. More information can be found 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.

Vector Displacement

Input attribute for connecting a vector displacement map.

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.

Vector Encoding

Floating Point Absolute (for floating point maps) or Signed Encoding (usually 8-bit maps, whose RGB is remapped to the (-1..1) range).

Vector Space

Can be World, Object, Tangent. This is the coordinate space where the vector is applied. The default is Tangent. 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 Tangent is null.

Tangent

Input attribute for connecting a tangent based vector displacement map. 

Workflow

  • First, you must set the Subdivision Type to Catclark and increase the Subdivision Iterations. 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.

Catclark subdivision with 6 subdivision iterations

 

  • 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.

  • The vector map must be connected to the Vector Displacement of the Displacement node. Be sure to connect the whole attribute and not component by component.

Vector Displacement map connected to Vector Displacement attribute of a Maya displacement node (Vector space set to Tangent)

 

  • The image is computed in tangent space, which works well in conjunction with deformed geometry (see the image below). MtoA supports all the Vector Spaces from the Maya Displacement shader (Object, World, and Tangent).

Vector displacement map set to tangent space assigned to deformed geometry.

For more information about vector displacement shaders, click here.

 

 

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

  • No labels