Displacement Mapping [update]

Displacement mapping can be enabled with 2 steps:

1) A texture node with dispalcement values should be connected to the slot of the Output material.

2) CentiLeo Object Tag should be added to the object that should contain displaced geometry. In this Object Tag the displacement mapping should be enabled.

Displacement Mapping is implemented as a pre-processing stage before scene rendering. All the scene objects with displacement mapping are tesselated finely into micro-triangles using Displacement settings of the Object Tag. Displacement of the surface is applied to vertices of tesselated micro-triangles. However all of this is done using GPU, it's a very fast stage and efficient for memory storage.

When Interactive Preview Render (IPR) is used then a button "Tess" should be manually clicked every time the displacement mapping, tesselatation options or camera position are changed.

tesselate3.png Manually update tesselation and displacement for all objects with enabled displacement with respect to the current camera position.

This command is manual because it adaptively evaluates new geometry state for different camera position and it would be costly for real-time reactions. But the processing responds nicely and quickly for manual tesselation request.

Object Tag Displacement settings

The displacement options of Object Tag determine the tesselation rate and displacement precision. 

In case displacement mapping is enabled in Object Tag the real-time auto-updates are off for this object in Interactive Preview Render and manual click for Tess button in IPR is needed to see the changes.

There are 2 edge subdivision methods: screen space and object space. In the first case the polygon edges are subdivided until their screen projection reaches the specified size in pixels. In the other case the global world space size is used. Both cases produce high quality results and provide great technology for resulting precision and low memory usage. After the edges are subdivided the displacement for their vertices is applied.

objecttag_displacement.png

The option Stich Corner Normals can help to stich the surfaces when displacement is applied. But even in this case the UVW mapping should be continuous across adjucent surface parts.

 odisplacement1.jpg  odisplacement2.jpg

Displacement Setup in material Node editor

In example below the displacement texture node is used for convenient scaling of displacement values and is used to enable Autobump option which may help to reduce displacement tesselation rate and add bump mapping for the last small scale details.

example_displacement.png

sss_displace.jpg