Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Center

Courtesy of Meindbender

...

Displacement Types - On the fly, Pretesselated and Vector

 

Center

1D displacement map (middle) applied to a simple plane. Height Maps contain displacement information only in the vertical direction

Image Modified

3D Vector displacement map (middle) applied to the same plane. Vector displacement can specify direction in all three axis
 

 

Maxwell Render has three methods of displacement:

...

This type is Maxwell Renders unique displacement technology that allows you to create virtually unlimited detail while using very little extra memory. This is a 1D height map displacement so the mesh is subdivided and the local Y coordinate of each point is vertically displaced according to the values of in a greyscale map. The object mesh is subdivided and displaced at render time, so the consumption of RAM is lower although it will take longer to render especially for bigger displacements. 

 This method is recommended for very fine, smaller/medium displacements and when you need to prioritize the RAM consumption of your system.

...

This is also a 1D height map displacement so the mesh is subdivided and the local Y coordinate of each point is vertically displaced according to the values of on a greyscale map. In this case, the object mesh is subdivided and displaced before the voxelization, as a pre-process, so the pre-process and voxelization takes may take a bit longer, but as soon as the whole geometry is loaded into memory, the render is then much faster than On the Fly displacement. The only limit of detail is how much RAM your system has, as all the geometry needs to be in memory at render time. 

This method is recommended for general purposes when the RAM in your system is not a limitation, as it renders much fastfaster

 

Vector

In this type , the displacement map is an RGB color map holding displacement information for both the X, Y and Z local coordinates of each point. As points can be displaced in the three axis, this type provides a surface with richer detail than simply 2D 1D displacement that uses black & white height maps.  

 

Info

Vector displacement maps can be created in 3D sculpting applications such as ZBrush, Mudbox or 3DCoat.

...

A displacement component can be added to the material (only one component per layer is allowed) by right-clicking in the Layers list area of the Material editor, or from the Edit menu of the Material Editor. Please note that, although you can have several displacement components in a material, only one of them will be selected for rendering (to ensure the continuity and physical integrity of the surface). You can specify which one you would like to use by clicking on the Material Properties row in the Layers list. It can be useful to have several Displacement components in one material for quickly switching between different sets of displacement settings. 

...

To use displacement, you need an object with UVs , and a displacement texture. The texture is similar to a usual grayscale bump map, with different shades of gray to describe elevation levels. Lighter grays will raise the geometry and darker grays will create cavities. Vector displacement maps are in color and 32bits, Red Green Blue describing where red, green and blue describe both elevation and direction.

...

Displacement parameters

Map

You must first load Load a displacement texture to access the displacement parameters. Maxwell Render can use 8, 16 or 32-bit grayscale displacement maps. It is recommended to use at least a 16-bit displacement image to create a smooth displacement, because 8-bit images may not contain enough gray levels (they contain only contain 256 ). You may see height levels), so you may end seeing a stair-stepping effect if using 8-bit maps. 8-bit maps may be enough for displacements that do not require smooth transitions between grey levels, and additionally Maxwell Render’s texture interpolation helps to render even 8-bit images smoothly.

Info

Vector displacement requires always 32bit displacement maps

Subdivision

Subdivision defines surface accuracy, ability and response to detail, independent of texture resolution. Before the surface is displaced, it is recursively subdivided, and this parameter is the measure of that subdivision level of the mesh: the higher the Subdivision value, the more accurate the result. However the more the mesh is subdivided during render time, the more it will influence the render time (although height in addition to Height which has the most negative impact on render time), or , in the case of vector displacement it will use more RAM. Subdivision has no negative effect on render time when using the Pretesselated method.

...

  • When specifying a low Subdivision value and using a high resolution texture with lots of detail, the final image will not show more detail than what is allowed by the Subdivision value.
  • When specifying a high Subdivision value but using a low resolution texture, the subdivision will reach the limit of the pixel detail of the texture and will not show a more detailed displacement. The displacement will reach the detail level of the texture. This is important to understand because you can optimize the displacement by starting with a high resolution texture and lower subdivision value, and keep raising the Subdivision value until the detail in the displacement is satisfactory.

...

Different Subdivision values to control the subdivision of the mesh

 

This The example above shows that going beyond a gain of 32 (in this particular case) would not add more detail while it would only increase the render time. So it is important to avoid unnecessarily excessive Subdivision values. This depends ofcourse on the resolution of your displacement map. A higher resolution displacement map will allow for more detail to be "extracted" from it.

Info

Because the On the Fly and Pretesselated methods have a completely different approach to subdividing the geometry, the final subdivision in the render is could be slightly different but for most displacements, the difference is that . In general terms: On the Fly subdivision = Pretesselated + 1 subdivision

Adaptive

The adaptive Adaptive option locks the subdivision value to the given texture detail (at half pixel accuracy), which has the advantage of always creating the most detailed displacement that a given texture can provide. The user does not have to guess what the maximum subdivision value should be for that texture, or worry about exceeding it (which would increase render times but would not necessarily increase image detail, see example above). The adaptive mode should be used with care, because using a very large-resolution texture to represent some simple detail will result in unnecessarily long render times.

The larger your texture, the longer the render times with Adaptive mode on because it will always render the maximum amount of detail for that particular texture. This parameter is not relevant when using the Pretesselated method. 

Warning

Adaptive mode can add substantially to the render time, especially with big displacement textures. This mode should be used mainly to “test” your displacement textures first to see how much detail can be obtained from a given texture size. Then you can switch Adaptive off and manually raise the Subdivision value until a level of detail close to Adaptive mode is has reached.

Subdivision Method

Define the method used to subdivide the mesh between Flat and Catmull/Loop. Flat method subdivides the mesh maintaining the original shape (a subdivided cube keeps looking like a sharp cube) while Catmull/Loop method smooths the mesh while subdivides it providing a more organic look (a subdivided cube loops appears like a round shape). 

Offset

This parameter allows you to specify which gray level in the texture should represent zero displacement. It is important that you set this parameter correctly, based on what type of the way the displacement map you usewere created. For example, some displacement maps may use 50% gray as zero displacement (darker shades than 50% in the texture will create cavities, lighter than 50% will raise the geometry). In this case, you should set the Offset parameter to 0.5 to get a proper displacement. If your displacement map uses black to represent zero displacement, set Offset to 0.

...

Smoothing

Similar to the object’s normals smoothing angle setting, this parameter controls whether the displaced surface should render smoothly (continuous shading) or render faceted. It is generally suggested you leave this setting to “on”, unless you aim to render very sharp, detailed displacements such as sharp corners. Please note that the objects smoothing angle will still override the smoothing used for the object’s base mesh faces, so if the object’s smoothing angle is set to Flat (rendering the object faceted), and the smoothing parameter is set to “on” in the displacement parameters, a smooth displacement surface will be rendered over a faceted base mesh surface.

...

  • None: No boundary interpolation behavior occurs occurs. 
  • Edges: All the boundary edge-chains are sharp creases; boundary vertices are not affected affected. 
  • Edges and Corners: All the boundary edge-chains are sharp creases and boundary vertices with exactly two incident edges are sharp corners corners. 
  • Sharp: Smooths only near vertices that are not at a discontinuous boundary. All vertices on a discontinuous boundary are subdivided with a sharp rule (interpolated through). 

...

This parameter sets the maximum distance displaced. It tells the engine how much real geometric height you want to displace on your base mesh. This value needs to be greater or less than zero for displacement to appear. The white areas of your texture will be raised to the height value you set. Displacement height can be set in percentages or in absolute units:

...

This parameter is used to control the overall size of the displacement (in X,Y,Z) and needs to be adjusted (usually lower than 1. 0) when using vector displacement maps saved in absolute tangent mode. Replaces the Height parameter (present on 1D displacement) because here the height values are derived from the map pixels values. It usually takes values lower than 1.0 on vector displacement maps saved in absolute tangent mode. 

Preset 

The different modeling and sculpting applications in the industry used to create vector displacement maps offer different settings for of the previous parameters to compile the displacement information into the vector map. Given the huge amount of export map possibilities, Maxwell offers a collection of presets adjusted to the export methods of the main modeling tools that automatically set the fields with the corresponding options: 

  • Custom: Custom control over the Transform, RGB mapping Mapping and Scale. 
  • ZBrush Tangent  
  • ZBrush World 
  • Mudbox Absolute Tangent 
  • Mudbox Object 
  • Mudbox World 
  • RealFlow 
  • Modo 

...

Objects made of evenly distributed polygons are preferable because they provide better quality. You should avoid base geometry with disproportionate triangles that converge to the same point. In areas with many small, converging triangles you may get artifacts when using displacement. This geometry is usually found in polygonal objects tesselated from NURBS geometry used in CAD applications. It is recommended to introduce more iso-lines on the initial NURBS geometry in these areas to create more evenly sized polygons. Some CAD applications allow good control over the tesselation, offering the creation of quads instead of triangles, or a limit to how long a triangle can be in the conversion.

...

To avoid any possible artifacts or gaps in the displacement on objects which contain polygons connected at sharp angles, make sure you set an object smoothing Smoothing angle that exceeds the maximum polygon angle of the object (i.e. for a cube, it should be 90 or greater).

...