Turtle attributes on displacement shaders

To view the following attributes in the Attribute Editor, select an object and expand the Turtle section in its displacement shader node.

Method

There are two different methods for doing displacement mapping in Turtle; Rendertime Micro Triangles and Pre-Tessellation. Both methods are described below. Which method to use and the settings for each method are found under the Turtle roll-out on the displacement shader. The following two attributes are used by both methods:

Displacement Scale

Controls the height of the displacement map. A higher value gives more displacement. This attribute is keyable for animation.

Smooth Base Mesh

Adds a smoothing value to the displacement value of a point to improve the smoothness of the base mesh and thus ensure that no base triangle borders are visible on the final render. Smooth Base Mesh works on individual polygons. If a ”global” smooth look is desired, render the object as a subdivision surface.

Rendertime Micro Triangles

This method displaces the geometry at render time, and only creates micro triangles as they are needed when a ray hits an object. Hence it’s very memory efficient. It also uses a levelof- detail (LOD) approach to scale the amount of tessellation depending on the distance to the camera. This is the default method for displacement mapping.

Max Triangles Per Edge

Controls the maximum number of micro triangles a base triangle will be divided into. If Max Triangles Per Edge is set to 10 the base triangle will be divided into 10*10 = 100 micro triangles.

Enable LOD

Enables level of detail on the displaced object. The LOD algorithm will adjust the size of the micro triangles to be less than the size of a pixel. If an object is far away, fewer micro triangles will be generated.

LOD Quality

Forces the LOD to tessellate harder (if larger than one) or more sparse (if less than one). The suggested tessellation from the LOD computation is multiplied with this value. This allows you to trim the LOD feature, if needed.

Max Ray Offset

When combining this method with final gathering and/or occlusion, this parameter has to be adjusted to avoid self-shadowing artifacts. A good rule-of-thumb is to set this value to half the displacement scale value if you are using both positive and negative displacement. If the entire displacement map is positive, leave the ray offset at zero.

Pre-Tessellation

This method tessellates the object into micro triangles before the rendering starts. Since all triangles are kept in memory it can be very memory consuming for highly detailed objects. However the tessellation can be done adaptively to make sure as few triangles as possible are produced.

Max Subdivision

Sets the initial level of subdivision to use when creating micro triangles from a base triangle. The base triangle is split into four new triangles at each level, so you will get 4 to the power of Max Subdiv micro triangles for each base triangle.

Edge Length

This parameter can be used to stop the subdivision when a specific edge length is reached. The edge length is given as a distance in world space units (cm). If a triangle’s edges are shorter then this distance, no more subdivision will be done to that triangle.

Edge Height

This parameter can be used to reduce the number of micro triangles produced. If neighbouring micro triangles have a similar displacement, they can be merged together, forming a larger single triangle. The edge height sets the maximum difference in displacement that triangles can have to be merged.

Smooth Normals

Enable Smooth Normals to interpolate normals for the displaced triangles. Not smoothing the normals may pronounce the displacement effect better.

Displacement Bounds

The bounds for displacement can be calculated automatically by Turtle, or you can set them manually. The default setting is to calculate the bounds automatically. However, sometimes the calculations fails to find the correct bounds which can result in displacement artifacts. By settings the bounds manually you can avoid this problem. Analyzing a shading network to find its bounds can also be quite time consuming, especially for procedural textures. So by using manual bounds you can also save a lot of time in the preprocessing phase. If you use manual bounds, make sure to set them as tight as possible, which will give better performance.

Lower Bound

Controls the minimum displacement value the shader should return. Note that if you have negative displacement this must be a negative value. If the shader returns a lower value than this it will be clamped to this value.

Upper Bound

Controls the maximum displacement value the shader should return. If the shader returns a higher value than this it will be clamped to this value.

Tip: When using file textures as displacement maps, use the MipMap filtering option for better performance.