Why is my displacement map not being projected onto my mesh properly? (Most Common Blender Issues)

Today, we’ll be addressing a limitation of the displacement modifier that I’m quite certain has impacted your workflow, perhaps leaving you puzzled about why it doesn’t behave as you’d expect.

Imagine you’ve created a model and now want to enhance its details using a displacement map. You’ve subdivided your mesh, applied a subdivision surface modifier to give it more volume for the details to adhere to, and placed the displacement modifier at the bottom of the stack.

But here’s the thing: no matter how much you subdivide or crank up the subdivision count with the subdivision modifier, you end up with these bizarre shapes. The shapes in your displacement texture just don’t seem to translate onto the mesh. You’ve heard all the advice: make sure you’re in cycles mode, double-check your UV unwrapping, try this, try that… A mix of helpful advice here and there and bunch of unrelated information that isn’t relevant to this problem at all.

You’ve meticulously followed every instruction, but it’s still not working. Why is that?

Note: If you are tired of watching video tutorials and would like to see more text-based tutorials like this one from me, you can support me on Patreon so I can dedicate more time to creating them.

Why does not my displacement modifier work properly?

Let’s investigate the problem. In this screenshot, you’ll notice that I have two plane meshes. Both of them are being displaced by this brick texture I brought into Blender. What I’d like you to focus on are the values in the “transform” area.

If we take a look at the values for “Plane 01”, you’ll see that its location, rotation, and scale values are all set to zero (0) because I haven’t made any adjustments to this object’s position, rotation, or scale. Everything works as expected and all information on the screen is printed as intended.

Lazy Loaded Image

Now let’s take a look at the second plane:

Lazy Loaded Image

Since this plane has been moved, rotated, and scaled up, its transformation values have naturally changed — exactly as anticipated. However, as you’ve likely noticed, despite the second plane being larger than the first, we still observe the same degree of displacement. In reality, constructing the second plane’s wall would require more bricks, wouldn’t it?

How do we tell Blender Blender that the second plane is bigger? We apply the scale. What about the rotation? Then we apply the rotation. Location? You know how it goes.

But here begins the problem.

Lazy Loaded Image

Let’s take a look at the screenshot above. I have applied my location and scale values for this mesh, and everything is working expected and yielding the expected result. But what happens, if I apply the rotation value as well?

Lazy Loaded Image

Boom. We’re getting that weird artifacts / unwanted shapes rather than getting the shapes that are found in our displacement map.

But why is this happening?

Lazy Loaded Image

Your advertisement can be placed here for $200 permanently. Suggested resolutions: 1800x663 or 1400x1400. Contact us.

This happens because the displacement modifier works with the original mesh data. The moment original mesh data value is modified, displacement modifier generates this kind of unwanted results. What I’m about to mention about seems like a solved issue, but applying scale in the past would also generate similar problems but it seems like Blender Foundation took care of this issue. Now this problem occurs only when the rotation of the object is applied but I thought it’s worth mentioning if you’re still experiencing issues with this modifier.

One final note, this limitation is persistent with the displacement modifier only, and does not apply to the material mode displacement method:

Lazy Loaded Image

Note: If you cannot get the displacement node working, please ensure that you haven’t forgotten to switch to ‘Displacement and Bump’ in the ‘Surface > Displacement’ section. By default, it should be set to ‘bump only’.

What if I need to bake my displacement and am using a texture atlas? Scaling UV islands is not a viable option for me.

In that case, instead of scaling your UVs, go to the texture properties of your displacement texture in Blender and increase the repeat X/Y count:

Lazy Loaded Image

Repetition set to 1 (default value):

Lazy Loaded Image

Same UV islands, repetition set to 4:

Lazy Loaded Image