Displacement Mapping Using the <udim> Token

Rollover image

 

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

 

 

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:

 

 

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 <udim> 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

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). In order 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.

An .ass file is available here.

 

 

 

 


  • No labels