This material allows you to control displacement of objects. Displacement is a technique for adding detail to your scene geometry without having to model it first. The concept is very similar to material bump. However, bump is a shading effect that only changes the appearance of a surface, while displacement actually modifies the surface.

Basic Properties

Name – here you can enter a name for the object.

Layer – If an element was assigned to a layer its layer color will be displayed here. This field reflects the layer color in the Layer Palette. You can drag & drop layers from the Layer Browser or similar layer fields onto this field. You can also assign layers or remove elements from current layers using the menus located behind the small triangle.

Preview Quality – quality of material preview in preview window.

Use Displacement – when this option is checked V-Ray Displace Material will affect object.

Use as Subdivision Surface – when this option is checked V-Ray Displace Material will apply a subdivision scheme to the object. For triangular portions of a mesh, the Loop subdivision scheme is used. For quadrangular portions, the Catmull-Clark scheme is used. Other polygons are first converted to triangles.

Common params

Displacement type – the method used to apply displacement mapping.

  • 2D Mapping – this method bases the displacement on a texture map that is known in advance. The displaced surface is rendered as a warped height-field based on that texture map. The actual raytracing of the displaced surface is done in texture space, and the result is mapped back into 3d space. The advantage of this method is that it preserves all the details in the displacement map. However, it requires that the object has valid texture coordinates. You cannot use this method for 3d procedural textures or other textures that use object or world coordinates. The displacement map can take any values (as opposed to 3D mapping, which will ignore values outside the 0.0-1.0 or black to white range).
  • 3D Mapping – this is a general method which takes the original surface geometry and subdivides its triangles into smaller sub-triangles which are then displaced. It can be applied for arbitrary displacement maps with any kind of mapping. This method can also use the displacement map specified in the object’s material. Note that with 3d mapping the displacement map’s range of values must be within the 0.0-1.0 range (black to white). Values outside of this range will be clipped.

Amount – the amount of displacement. A value of 0.0 means the object will appear unchanged. Higher values produce a greater displacement effect. This can also be negative, in which case the displacement will push geometry inside the object. Intensity of the displacement is sets in really world units, thous units are taken from the c4d units of the file, if you change the units there also the displacement size changes accordingly.

Shift – this specifies a constant, which will be added to the displacement map values, effectively shifting the displaced surface up and down along the normals. This can be either positive or negative.

Use Water level – turn on or off using Water level with Displacement.

Water level – this will clip the surface geometry in places where the displacement map value is below the specified threshold. This can be used for clip mapping a displacement map value below which geometry will be clipped.

Texture – the displacement map. This can be any texture map – a bitmap, procedural map etc.

Texture Type – for displacement texture you can use a classic luminace grayscale based map (Luminance texture) or Normal Map (RGB).

2D Mapping

Resolution – this determines the resolution of the displacement texture used by VRAYforC4D . If the texture map is a bitmap, it would be best to match this resolution to the size of the bitmap. For procedural 2d maps, the resolution is determined by the desired quality and detail in the displacement. Note that VRAYforC4D will also automatically generate a normals map based on the displacement map, to compensate for details not captured by the actual displaced surface.

Precision – this parameter is related to the curvature of the displaced surface; flat surfaces can do with a lower precision (for a perfectly flat plane you can use 1), more curved surfaces require higher values. If the precision is not high enough you can get dark spots (“surface acne”) on the displacement. Lower values compute faster.

Tight bounds – this parameter will cause VRAYforC4D to compute more precise bounding volumes for the displaced triangles, leading to slightly better rendering times.

3D Mapping

Use Global parameters – when this option is off VRAYforC4D’s displacement tag will use own displacement parameters, not Displacement Render Settings values.

View dependent – when this is on, Edge length determines the maximum length of a subtriangle edge, in pixels. A value of 1.0 means that the longest edge of each sub triangle will be about one pixel long when projected on the screen. When View-dependent is off, Edge length is the maximum sub triangle edge length in world units.

Edge length – this determines the quality of the displacement. Each triangle of the original mesh is subdivided into a number of subtriangles. More subtriangles mean more detail in the displacement, slower rendering times and more RAM usage. Less subtriangles mean less detail, faster rendering and less RAM. The meaning of Edge length depends on the View-dependent parameter below.

Max subdivs – this controls the maximum subtriangles generated from any triangle of the original mesh. The value is in fact the square root of the maximum number of subtriangles. For example, a value of 256 means that at most 256 x 256 = 65536 subtriangles will be generated for any given original triangle. It is not a good idea to keep this value very high. If you need to use higher values, it will be better to tessellate the original mesh itself into smaller triangles instead.

Static geometry – When enabled, the displacement geometry is pre-compiled into an acceleration structure at the beginning of the rendering and remains there until the end of the frame. This can speed up the rendering but will increase the memory usage.

Classic Catmull-Clark – When this option is enabled, V-Ray will use the Classic Catmull-Clark method for subdividing the mesh instead of the hybrid one used by default. This option should be enabled only if the mesh is composed entirely of rectangular faces or it will not work.

Preserve map bound – When Smooth UVs is enabled, this parameter determines what will happen at UV boundaries.

  • All – All boundary UVs will be preserved and not smoothed.
  • Internal – Only internal boundaries will be preserved. Internal boundaries is are UVs that are split in the UV space but are connected on the geometry. This option ensures that there is no smoothing of the UVs where they are stitched together.
  • None – All boundaries will be smoothed.

Tight bounds – when this is on, VRAYforC4D will try to compute the exact bounding volume of the displaced triangles from the original mesh. This requires pre-sampling of the displacement texture, but the rendering will be faster, if the texture has large black or white areas. However, if the displacement texture is slow to evaluate and varies a lot between full black and white, if may be faster to turn this option off. When it is off, VRAYforC4D will assume worst-case bounding volumes, and will not presample the texture. Note that this affects only the 2d mapping and 3d mapping modes; with the Subdivision method VRAYforC4D will always compute the exact bounding volume and this parameter is ignored.

Keep continuity – using this will try to produce a connected surface, without splits.

Vector Displacement – If you have a displacement texture that is not grayscale VRAYforC4D will convert it to grayscale before rendering the displaced geometry. When this option is enabaled it allows VRAYforC4D to use the Red Green and Blue channels of the displacement texture to displace the geometry in the U and V directions in addition to the normal of the face.

Use texmap bounds – the texture map will be filtered before the actual displacement takes place, you can force to compute more precise bounding volumes for the displaced triangles, leading to slightly better rendering times.

Texmap min / Texmap max – these two options allow you to specify custom bounderies for the displaced geometry. By default is limited to values between 0 and 1. .

Example: Displacement vs Bump Mapping

Bump mapping

This example shows the difference between bump mapping and displacement mapping. Notice the round outline of the sphere and its shadow in the case of bump mapping, and the deformed outline produced by the displacement. The displacement map in this case is a 3D Cellular (procedural) map; the 3D mapping method was used.

Example: Subdivision Displacement

Original mesh

Type = Subdivision, Amount = 0

Type = Subdivision , Amount > 0

Here is an example of subdivision displacement. (head model by Alexander Sokerov)

Example: Shift

Shift = -5.0

Shift = 0

Shift = 5.0

Note that the Shift parameter is an absolute value in world units. If you change the Amount, you will probably need to adjust the Shift too.

Example: Clip Mapping

Water level  0.0 (no clipping)

Water level  = 1.25

Water level  = 2.5

Water level  = 3.75

Water level = 5.0 (all geometry is clipped)

The Water level parameter is absolute in world units. For this example, Amount is set to 5.0 and Shift is set to 0.0. Note that when Water level reaches Amount + Shift, all geometry is clipped.

This example demonstrates the use of displacement mapping to clip away geometry from an object. The displacement map is a mix of a Noise map and a tiled Gradient ramp map; the dark regions of the map are clipped away. In this case the displacement map was applied to an explicit mapping channel. The Type used was  2D mapping (landscape).

Example: Edge Length

This example shows the effects of increasing the Edge length parameter. In this example View-dependent is enabled, so Edge length is expressed in pixels. In the examples, the closeup view is a blow-up rather than a zoomed view. This means that Edge length in the closeup view refers to pixels in the original image, not the blow-up rendering. Click the images for a larger view.

Edge length = 0.5

Edge length = 0.5 (closeup view)

Edge length = 1.0

Edge length = 1.0 (closeup view)

Edge length = 2.0

Edge length = 2.0 (closeup view)

Edge length = 5.0

Edge length = 5.0 (closeup view)

Edge length = 10.0

Edge length = 10.0 (closeup view)

The Water level parameter is absolute in world units. For this example, Amount is set to 5.0 and Shift is set to 0.0. Note that when Water level reaches Amount + Shift, all geometry is clipped.

Example: Keep Continuity

The Keep continuity option is useful for objects with disjoint normals on neighboring triangles, usually because of different smoothing groups. In the middle image below you can see the edge splits produced by disjoint normals. Using the Keep continuity option avoids this problem. This option will also help to produce a smoother result across material ID boundaries for objects that have been assigned Multi-Sub-Object materials.

Keep continuity = disabled

Keep continuity = enabled

Example: Vector Displacement

This example shows the effect of the Vector Displacement  option in more detail.

The first image shows complex geometry on the left. The second image shows the resulting displacement map, where the red, green and blue components define displacement vectors in the texture UVW space. The final image shows the vector displacement map applied on another object through the V- Ray Displacement Material.

A piece of complex geometry, and a simple version
with a V-Ray Displacement Material.

The displacement map, computed by texture baking with the  of the simple geometry. The result is saved into an .exr file (a .png file is shown here).

The displacement map applied on a different geometry through
the V-Ray Displacement Material with vector displacement.

Example: Texture Boundaries

This example shows a plane mapped with a displacement map that has negative values. With the default boundaries for the displacement (from 0 to 1) we are unable to see the geometry displaced in the negative direction. However, once we  set Texmap min and Texmap max  to -1  and  1  respectively, we can see the displaced geometry in both the positive and negative direction.

Texmap min  = 0 ;  Texmap max  1

Texmap min  = –1 Texmap max 1

Example: Displacement on a Character

This example shows displacement on a character mesh. The map is a 3D cellular map, so the 3D mapping displacement method is used.

Note that if the character is animated and the map is a 3D map using Object XYZ mapping, then the map will change relative to the object surface, since the surface itself changes its position in space.

3D cellular map with 3D displacement on a character

Character without displacement