Versions Compared

Key

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

Courtesy of Meindbender

...

Displacement is a powerful texture-driven tool that can help users to create real geometric detail on objects. Contrary to bump/normal maps, the displacement feature simulates real geometry at render time as if it was were actually modeled. This feature is very useful for adding fine detail to a mesh which would otherwise be difficult or impossible to actually model. Displacement uses a texture to define the geometric detail. Maxwell supports both 1D vertical displacement (also known and as a Height Map) and 3D displacement (also known as Vector Displacement). 

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:

On the Fly

This type is Maxwell Renders Here, Maxwell Render's 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 in a greyscale map. The object mesh is subdivided and displaced at render time, so the consumption of RAM is lower although - although it will take longer to render, especially for bigger with 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 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 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 limit on the detail is how much RAM your system has, as all the geometry needs to be in memory at render time. 

...

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 simple 1D displacement height maps.  

...

Displacement parameters

Map

Load Loads 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 256 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 always requires always 32bit 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 (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.

...

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 of course 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 could be slightly different, but for most displacements. In , in general terms: On the Fly subdivision = Pretesselated + 1 subdivision

...

The 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 - 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.

...

Define the method used to subdivide the mesh between Flat and Catmull/Loop. Flat  The Flat method subdivides the mesh, maintaining the original shape (a subdivided cube keeps looking like a sharp cube), while the Catmull/Loop method smooths the mesh while it it subdivides it, providing a more organic look (a subdivided cube appears like a as 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 the way the displacement map were was 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 normal smoothing angle setting, this parameter controls whether the displaced surface should render smoothly (continuous shading) or render in a faceted way. 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 object's 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 (faceted rendering the of 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.

...

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:

  • Percentage (%): Set  Sets the desired height as a percentage of the longest edge of the associated object’s bounding box. For example, if you have a car of 300 x 150 x 110 cm and you set height as 1, this means the peak displacement will be 1% of 300 (the longest edge of the bounding box) which is 3 cm to be observed as real length in render output. Using relative height is useful when you wish to preserve the same displacement height when scaling the object.
  • Centimeters (cm): Set  Sets the height in centimeters to always displace to this given value regardless of object dimensions.

...

Vector 3D Properties (for 3D displacement only) 

Transform

Indicate Indicates if the displacement information coded in the vector file corresponds to displacement in Object, Tangent or World space at each point. It's derived from the settings used in the vector displacement map creation.

RGB Mapping

Indicate Indicates the order of the axis information associated to the R, G and B channels of the map. It's derived from the axis system with which the vector displacement map were was created.

Scale

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

...

Tip

Tips to reduce the impact on render times:

Render times can vary greatly. These three factors play an important role in render times:

  • The base mesh vs. subdivision value (see below for details).
  • The height of displacement (higher displacements will increase render times).
  • For the On the Fly displacement method: How how many displaced surfaces and objects the rendered image contains. For example, a common usage of displacement may be for a brick wall seen from far away, taking up 30-40% of the rendered image. In this case, low height and subdivision values can be used, and the impact on render times will be minimal. On the other hand, a close-up render of a displacement object taking up the whole image, using high subdivision values, will need more time to render cleancleanly.

 

Base Mesh vs. Subdivision

The more polygons you have in your base mesh, the less subdivision the fewer subdivisions you will need to render the same amount of displacement detail. Displacements with less with fewer subdivisions will always render faster. For example, if you are planning to render displacement over a plane, model your initial plane using more than 2 triangles. The render time will not increase if your base mesh has many polygons.

...

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 that you introduce more iso-lines on in 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.

...