Displacement

without displacement with displacement

Displacement maps can be an excellent tool for adding surface detail that would take far too long using regular modeling methods. Displacement mapping differs from bump mapping in that it alters the geometry, and therefore will have a correct silhouette, and self-shadowing effects. Depending on the type of input, the displacement can occur in two ways: Float, RGB & RGBA inputs will displace along the normal while a vector input will displace along the vector.

The example above shows how a simple plane, with the addition of a displacement map, can produce an interesting looking simple scene.

You should ensure that your base mesh geometry has a sufficient number of polygons otherwise subtle differences can occur between the displaced low-resolution geometry and the high-resolution mesh from which it was generated.

Note:

Make sure that you use a 32-bit or 16-bit 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.

Note:

Vector displacement maps can be applied using the vector_map shader.

noise -> displacement parameter of the Arnold Material's Output.

Subdivision

In the Arnold Properties attached to the geometry, changing the subdivision_type to catclark and increasing the subdivision_iterations will improve the displacement quality. In the examples below the subdivision_iterations  have been increased from 0 (disabled) to 4.

Note:

You must be careful when increasing the number of subdivision_iterations. Each subdivision_iterations quadruples the number of polygons and can lead to some very dense geometry.

Note:

The subdivision/displacement speed is mainly determined by the number of subdivision_iterations.

subdivision_iterations: 0 (disabled) subdivision_iterations: 1 subdivision_iterations: 3 subdivision_iterations: 5

Displacement Properties

The height, bounds_padding and zero_value of the displacement are controlled on a per object basis through the Arnold Properties assigned to the object.

Info: More information can be found on the Displacement (geometry) page.