Vector Displacement from Mudbox to Arnold

In this tutorial, we will take you through the process of rendering a head model from nothing but a sphere and a vector displacement map. Vector displacement maps are a powerful and efficient way to add detail to your scene without the overhead of managing complex geometry. They provide a very efficient workflow when working with models from 3D sculpting applications and Arnold. Unlike traditional gray scale displacement maps which simply use a line long for the vertex normal, vector displacement maps have RGB values which represent the XYZ displacement direction and size. This means they don't follow a fixed surface normal and can move in any direction, including overlapping each other.

However, vector displacement maps have larger file sizes because they have to store more information than regular displacement maps. Also bear in mind that vector displacement maps, as with normal displacement maps, are not perfect for every situation. For example, UV seams can be problematic when using vector displacement maps.

Many thanks to the very talented Zeno Pelgrims for providing the assets and assistance for this tutorial.

The sphere.obj, vector displacement map and diffuse color map can be downloaded here.

Important:

Ensure that you enable Texture Coords when importing the sphere.obj file (off by default) otherwise, the UVs will be missing and you will get incorrect displacement.

sphere without vector displacement vector displacement map sphere with vector displacement

Mudbox

The original head sculpt has been extracted from Mudbox using the following settings.

Mudbox sculpt details

Note:

Make sure that you use a 32bit or 16bit floating-point format to store your image, and not an integer format. An integer format will not work correctly. This is because integer formats do not support negative pixel values, which are used by floating-point displacement maps.

3ds Max

obj_base

Vector Displacement Shader

vector_space set to tangent

Subdivisions

You can see a subtle difference in quality between 4 and 6 subdivision iterations in the images below.

2 4 6

The utility shader can be useful for diagnosing issues when rendering displacement maps.

Utility shader. Shade_mode set to ndoteye and overlay_mode set to polywire.

That concludes this tutorial on rendering vector displacements from Mudbox with MAXtoA.