A scene file can be downloaded here.

A tutorial that demonstrates displacement mapping using the <udim> token can be found here.


You must add an Arnold Tag to the geometry that you wish to displace to edit its subdivision and displacement attributes:


Arnold Tag showing Arnold displacement and subdivision attributes


Always ensure that you use the highest quality texture maps for displacement mapping. Arnold works well with very high-resolution maps, as long as the maps have been pre-processed with the maketx utility. It will convert them into .tx files (which are tiled, mipmapped files). See the pages about the Tx Manager and .tx files.



Subdivision Iterations set to 8. Subdivision Type set to Cat Clark.


Per-Object Displacement Attributes

Any changes to the displacement that are made on a mesh will modify the default displacement shader attributes. This may be useful in a scene that has two objects with the same shader but requires different shape displacement values. Another example would be an object that has more than one shader but requires two different Height values such as in the example below:

Same displacement shader assigned to two meshes, however, the mesh on the right has a per-object Height of 2


The per-object C4DtoA displacement attributes are divided into the following groups:



Bounds Padding

Below is another example of a situation where bounds padding is required. A checker texture is connected to a displacement shader that is assigned to a sphere. In the image on the left, parts of the render return black. This is because the Bounds padding needs to be increased for the displaced mesh. Increasing the Bounds padding to 3 fixes the problem. This effect may increase or decrease depending on the scale of the object that is being displaced and the amount of displacement used.



Scalar Zero Value


Shader Displacement and Per-Object Displacement

Care should be taken when using both of these attributes at the same time. The relationship between the displacement shader and the per-object mesh displacement varies when rendering. These differences are as follows:


If the per-object Height value is increased when there is already some Displacement Scale, it will have a multiplying effect on the displacement. For example, if the Displacement Scale is set to 0.1 in the shader and the per-object Height is increased from 1 to 2, the Displacement Scale will double in size to 0.2:

The effect of the Displacement Scale doubles from 0.1 to 0.2 when the mesh Displacement Height is set to 2.

Scalar Zero Value

If the per-object Scalar Zero Value is increased when there is already some Displacement Scale, it will have an additive effect on the displacement. For example, if the Scalar Zero Value is set to 0.2 in the shader and the per-object Scalar Zero Value is set to 200 cm, the Scalar Zero Value will double in size to 400 cm: