Displacement shaders - Arnold for Cinema4d
Further Reading |
---|
See the Arnold User Guide for more information. |
![]() |
![]() |
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.
The following displacement methods are available:
- normal displacement: Displace the surface along the surface normals.
- vector displacement: Vector displacement maps can displace in directions other than the face normal, which is much more flexible. Vector displacement uses the color channels that specify a vector in a certain space to displace the vertices of the geometry in that direction and magnitude.
Info: A scene file can be downloaded here.
Info: Tutorials that demonstrate displacement mapping can be found here.
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.
You should ensure that your base mesh geometry has a sufficient level of subdivision when using displacement. Otherwise subtle differences can occur between the displaced low-resolution geometry and the high-resolution mesh from which it was generated.
Per-Object Displacement Attributes
It is possible to set displacement settings on a per-face or per-object basis.
Add an Arnold Tag to the geometry that you wish to displace to edit its subdivision and 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.
Same displacement shader assigned to two meshes, however, the mesh on the right has a per-object Height of 2
Further Reading |
---|
See the Arnold User Guide for more information on per-object displacement parameters. |
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.
Height
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 Scale will double in size to 0.2:
![]() |
![]() |
Displacement Height 1 x Scale (0.5) = 0.5 | Displacement Height 2 x Scale (0.5) = 1 |
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 0.2, the Scalar Zero Value will double in size to 0.4:
![]() |
![]() |
Scalar Zero Value 0.2 (mesh only) | Scalar Zero Value 0.4 (displacement shader and mesh) |