Table of Contents

This page provides information about the Geometry tag in V-Ray for Cinema 4D. 

 

Overview


The Geometry tag can be added to any geometry object and provides control over displacement, subdivision and OpenSubdiv.

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

The attributes in this section affect V-Ray displacement and can be added to any polygonal mesh object.

 

Displacement Workflow


1. Right-click on the geometry object in the Objects tab.

2. Go to V-Ray tags and select the Geometry tag.

 

 

Alternatively, it can be accessed through the Tags menu in the Objects Tab.

Starting with Cinema 4D 2023.1, V-Ray Geometry tag resides in Extensions > V-Ray tags

 

 

 

 

 


 

3. Enable Displacement.

4. Load a displacement map.

 

 

 

Change the Material Tag


By default, V-Ray Displacement uses the assigned material as a UV channel.

You can change the UV channel considered for displacement by changing the material in the Material tag field.

 

 

Displacement Parameters


Enabled – When checked, enables displacement.

Texture – Specifies the displacement texture.

Material Tag – Specifies custom UV mapping for the displacement, taken from the material currently attached in this field. If the field is empty, V-Ray uses the default or the UV mapping from the currently applied material to the object.

Type – Specifies the mode for rendering the displacement.

2D Displacement – 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 the object to have 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.
Normal – 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.
Vector – When using a displacement texture that is not grayscale, V-Ray converts it into grayscale before rendering the displaced geometry. This mode allows V-Ray 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 direction of the face normal.
Vector (absolute) – A vector-type displacement mode in which the texture is interpreted as 0.5-based tangent space displacement map.
Vector (object) – The texture values represent 0-based displacement in object space.

Geometry Generation – Determines when the geometry is compiled during rendering.

On the Fly – The subdivision geometry dynamically goes into the dynamic memory pool during rendering from which it can later be removed, if needed. This process is at the expense of some speed but potentially saves memory.
Pre-tessellated – The subdivision 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 and increase memory usage.

Displacement Amount – The amount of displacement. A value of 0.0 means the object appears unchanged. Higher values produce a greater displacement effect. This can also be negative, in which case the displacement pushes geometry inside the object. 

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

 

 

Normal Displacement


Keep Continuity – When enabled, V-Ray tries to produce a connected surface. Use it when you get splits (usually around sharp edges) in the displaced geometry.

Cache Normals – When enabled, V-Ray generates and saves information about the normal of each newly generated vertex. This requires additional memory but speeds up the shading calculations during rendering.

Enable Water Level – When enabled, this clips the surface geometry in places where the displacement map value is below the threshold specified by the Water Level field. This can be used for clip mapping a displacement map value, below which geometry is clipped. 

Use Bounds – Enables Min/Max Bounds.

Min/Max Bound – These two options allow you to specify custom boundaries for the displaced geometry. By default they are limited to values between 0 and 1.

 

2D Displacement


Texture Resolution – Determines the resolution of the displacement texture used by V-Ray. 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 V-Ray also automatically generates a normals map based on the displacement map, to compensate for details not captured by the actual displaced surface. 

Filter Texture – When enabled, the texture map is filtered before the displacement takes place.

Filter Blur – Specifies the amount of blur that is applied to the texture before the displacement takes place.

Precision – 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 – Causes V-Ray to compute more precise bounding volumes for the displaced triangles, leading to slightly better rendering times. 

Multi Tile – When enabled, 2D Displacement can work with <UVTILE>/<UDIM> textures.

 

Subdivision


 

Enabled – Enables the object subdivision.

Geometry Generation – Determines when the geometry is compiled during rendering.

On the Fly  – The subdivision geometry goes into the dynamic memory pool during rendering, from which it can later be removed, if needed. This process is at the expense of some speed, but potentially saving on RAM. 
Pre-tessellated  – The subdivision geometry is pre-compiled into an acceleration structure at the beginning of the rendering and remains there until the end of the frame. This may speed up the rendering and increase the memory usage.

Preserve Map Borders – Specifies how to handle subdivisions of UV coordinates at UV seams when Subdivide UVs is enabled. The possible values are:

None – UVs are always subdivided regardless of whether they are on a UV seam or not.
Internal – Only preserve UVs if they are on an internal UV seam.
All – Does not subdivide UVs on UV seams.

Subdivide UVs – When enabled, the UVs of the object are subdivided at the borders.

Preserve Geometry Borders – Specifies whether subdivision geometry borders are preserved or not.

Classic Catmull-Clark – When this option is enabled, V-Ray uses the Classic Catmul-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 does not work.

 

OpenSubdiv


 

Enable Open Subdiv – When enabled, the object is subdivided before rendering using the OpenSubdiv library.

Subdivision Level – The number of subdivision levels. This values is set to 0 by default.

Type – The type of subdivision used. Two types are currently supported by the OpenSubdiv library:

Catmull-Clark – The default subdivision method which can handle meshes with arbitrary polygons (triangles, quads etc).
Loop – This subdivision method works with triangles only.

Preserve Map Borders – Specifies how to handle subdivisions of UV coordinates at UV seams when Open Subdivide UVs is enabled. The possible values are:

None – UVs are always subdivided, regardless of whether they are on a UV seam or not;
Internal – Only preserve UVs if they are on an internal UV seam;
All – Does not subdivide UVs on UV seams.

Subdivide UVsAllows you to choose whether or not the UVs of the object are subdivided at the borders.

Preserve Geometry Borders – Specifies whether geometry borders are preserved or not.

 

Quality


Use Global SettingsWhen enabled, the settings in the Geometry tab are overridden for the current object. This option is enabled by default.

View Dependent –  When enabled, Edge Length determines the maximum length of a subtriangle edge, in pixels. A value of 1.0 means that the longest edge of each subtriangle is about one pixel long when projected on the screen. When View-dependent is off, Edge length is the maximum subtriangle edge length in world units. This options is disabled by default.

Edge LengthDetermines the quality of the displacement or subdivision. Each triangle of the original mesh is subdivided into a number of subtriangles. More subtriangles means 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 above.

Max SubdivisionsControls 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 are 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 is better to tessellate the original mesh itself into smaller triangles instead.