Tangent Space Vector Displacement Support for Displace Modifier

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:

  1. Given two selected objects (the active one being the non-deformed one), compute the displacements for each pair of corresponding vertices.
  2. Normalise the displacements dividing them by the length of the longest vector, so that every component is in the range [-1.0, 1.0].
  3. 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!

Download links:

Blender 2.80 Custom Build and Script to Create Tangent Space Displace Map

Video demonstration

7 Likes

I have fixed a bug in the Blender build and updated the download link, please check the new version if interested, thank you!

3 Likes

Hi DamianoOriti,

I have test Vector Displacement Map quite a lot in Blender.

I came to your build because I was searching of any way some kind of Vector Map Brush could be implemented inside Blender.

I think having ‘‘tangent’’ inside the displace modifier is a great idea !
Below, I have show you two use case this could be use inside Blender.

The head was animated by controling the scale of the Vector Displacement Node. But there is no real way to create geometry with VDM at the moment. Having the option of your build could fill that gap.

Do you think you could create a patch to be review on blender.developer.org ?

Have a nice day !,
Francis