2
$\begingroup$

The Displace modifier has the option to displace based on the face's normal, so upwards/downwards relative to the face, same as Z translate based on normal. Is there any way to get it to do an X or Y translate in relation to the normal?

$\endgroup$

2 Answers 2

5
$\begingroup$

This a type of what is typically referred to as vector displacement, where the displacement map provides RGB values which are used to get displacement along different axes. This displacement can occur along different orientations (or coordinate spaces) of the axes.

Currently, to my knowledge blender only supports local object space (The 'RGB to XYZ' option in the displace modifer, see https://www.blender.org/manual/modeling/modifiers/deform/displace.html). To displace along vectors perpendicular to the normal the displacement would need to be applied in the vertex tangent space. If you are familiar with normal mapping this is very similar to the difference between object space and tangent space normal maps.

Local object space displacement will work fine so long as your mesh does not dynamically deform (e.g. armature modified, cloth sim etc).

$\endgroup$
3
  • $\begingroup$ The manual states that the 'RGB to XYZ' option is sometimes referred to as Vector Displacement. There is a separate 'XYZ' option which they call local space. Would 'RGB to XYZ' work like Vector Displacement in other applications? $\endgroup$
    – aliasguru
    Aug 23, 2016 at 6:38
  • $\begingroup$ I'm not terribly familiar with how vector displacements work in other applications, but it would depend on what coordinate space the displacements are being calculated under. Blender only supports the local/object coordinate space. From a mathematical perspective it is possible to do this in tangent space (which is what the asker is describing) $\endgroup$
    – Sazerac
    Aug 23, 2016 at 6:45
  • $\begingroup$ Its probably worth noting that under the hood the Corrective Smooth modifier is effectively doing tangent space displacement to reconstruct lost detail from the smoothing, this just isn't available to the displace modifier. $\endgroup$
    – Sazerac
    Aug 23, 2016 at 6:46
3
$\begingroup$

I've been looking for an answer to this myself. I found that the following node group works quite well for this, extruding displacement along normals. I found that adding an additional bevel modifier after displacement helps to smooth the geometry, otherwise there are visible gaps between displaced planes.

Example:

Cube with Checker Texture Applied

Node Setup:

Node Map

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .