Displacement Mapping Using the Token

without displacement with displacement

The aim of this simple tutorial is to explain how to render texture maps that have been exported from Mari using the correct displacement workflow with Arnold. This example uses a creature model and displacement maps (kindly provided by Alex Huguet).

UV TILE - UDIM

UDIM values are a way of representing the integer coordinates of a texture, from the coordinates of its bottom-left corner in UV space. This way, multiple textures can be used to cover a model, rather than a single, much larger, texture.

This is the convention used by Mari when exporting its UV texture space. It starts at 1001 (0,0) and continues in U for another 10 offsets. It then progresses onto the next row of V, meaning for every 10 in U it moves 1 in V.

1021 1022 1023 1024 1025 1026 1027 1028 1029 1030

1011 1012 1013 1014 1015 1016 1017 1018 1019 1020

1001 1002 1003 1004 1005 1006 1007 1008 1009 1010

The UV offset grid below better shows this relationship (this example only shows a range of five as the creature model uses five displacement maps):

You can see in the UV Texture Editor, that the UV's have been laid out in UV space as 1001 (0,0) to 1005 (5,0) and that the displacement texture files have been named accordingly:

Texture Paths

When opening the displacement file texture, Arnold will use a 'relative' file path naming convention. If you are having problems rendering the texture, change the file path name to an 'absolute' path (changing the project directory will automatically change the path name to 'absolute').

To use this method in your file inputs, use the  tag in the file name, which is then replaced with the appropriate number:

Relative file path - Textures\displacement. <udim>.tif

Absolute file path - C:\Users\Documents\Project\Textures\ displacement. <udim>.tif

Displacement Parameters

A file texture (using an absolute path name of C:\Users\Documents\projects\Displacement-troll\sourceimages\displacement.<udim>.tif  is connected to a displacement node which is connected to the shader assigned to the creature.

The Vector Space has been set to 'World' space, and the scale has been set to 0.75. The bounds_padding has been set to 1, and the scalar_zero_value has been set to 0.25 (these values are meant as a rough guide and will need to change according to how and where the displacement map was generated).

Subdivision

To see the detail from the displacement maps, the model's subdivision settings need to be increased. In this case, the subdivision_type has been set to catclark, and the iterations increased to 2.

That concludes this tutorial for rendering displacement maps saved from Mari using <udim> tokens.

The final render (minus one bucket)