I have modified the source code of Blender 2.8 to add Tangent Space Vector Displacement (TSVD) support to the Displace Modifier.
Contrarily to the Cycles Vector Displacement Node, which supports Tangent Space Vector Displacements, this works both with Cycles and Eevee.
This is the result:
In order to use a Displacement Map, add a Displace Modifier to the mesh object with the following settings:
- Direction: RGB to XYZ
- Space: Local
- Texture Coordinates: UV
You have to choose Local in the Space property because it is the mode I have overriden to work as Tangent Space.
I have done this in order to make a minimal modification of the existing code and not to break compatibility with the official release.
In order to generate a Tangent Space Displacement Map in Blender, I have also written a python script which will color the vertices of a target non-deformed mesh using the displacements of a deformed mesh vertices from the target mesh ones.
The script does the following operations:
- Given two selected objects (the active one being the non-deformed one), compute the displacements for each pair of corresponding vertices.
- Normalise the displacements dividing them by the length of the longest vector, so that every component is in the range [-1.0, 1.0].
- Assign the displacements to the target mesh as vertex colors.
Then the vertex colors can be baked in a texture using Cycles.
I hope this is useful to somebody!