Displacement not displacing

Hi guys,

another super basic thing that I just can’t figure out by myself :roll_eyes:
I bought one of those useless OBJ models a while ago, of course it has 10000 texture files, but nothing seems to be mapped.
Now I got myself a nice rock wall texture from blenderkit, but the displacement just isn’t happening. See what it should look like, and the screenshot of total flatness.

I tried putting the texture on a displacement modifier after subdividing the surface 10 times, doesn’t look even remotely close to what I was expecting :sweat_smile: Should have learned that a long time ago if I can’t even use drag & drop materials properly :monkey:

OR is there actually a way to import an OBJ with materials? I don’t get what the material file is actually supposed to achieve. FBX work fine most of the time…

For displacement to work nicely you need LOADS of geometry, a plane subdivided 10 times is not enough to get any detail. For a good displacement the mesh should look nearly black in edit mode due to the heavy geometry.

Displacement displaces the actual vertices and the mesh needs to be VERY dense for it to look good.

You could also try the adaptive subdivision option, this is still experimental and can be slow or buggy.
In render properties - feature set turn on experimental. Now the subdivision surface modifier will have an adaptive subdivision option. Look up adaptive subdivision for more info.

If you do not want to make your file very heavy ( your wall looks pretty large) you can try to use the displacement map plugged into the height input of a bump node.

This does not displace the geometry, it simply fakes the normals but it is often good enough.

Just for comparison here is the same texture using displacement (I subdivided the cube 100 TIMES), note the sides of the cube you can see that it has actually displaced the geometry.


Also, I assume you set up your displacement properly in the settings?


OK, that explains a lot :sweat_smile:
It’s for interior renders, as long as the polycount doesn’t gobble down my hefty 8GB VRAM in the scene I’m fine. The rock materials alone sometimes massively slow my workstation down, so I’m curious. Tomorrow I’ll try! I guess I mixed this up with normals that magically seem to create geometry :man_facepalming:

That’s precisely what I found in other entries concerning this issue, but I DON’T HAVE THEM, like one OP on Stackexchange… probably another super basic thing

Are you using Eevee? It doesn’t have these settings and isn’t compatible with shader displacement. If you want true displacement in Eevee, you need to use the displacement modifier.

1 Like

No, I never use eevee, ever, but it’s possible that it was on in the asset editing. The screenshot was made from Cycles render view.
In tbe other hand, knowing myself, it’s very well possible I missed something like this… tomorrow will show :see_no_evil:

1 Like

All right…

So I subdivided 100 times, no front face displacement.
Then I subdivided another 10 times. Looks like cr4p :sweat_smile:

My settings appear to be correct:
Screenshot 2023-05-14 091708
(I looked in the wrong place before)Now I put on a Subsurf. The only serious displacement happening is on the sides :thinking:
Turned on Adaptive Subdivision. NOW it seems to displacing also to the front, with 30 million verts, yay, that CAN’T be it, I’m gonna have to find out how rock faces are done, I just know too little about this, which is extremely obvious. Maybe I can use True-Terrain for this… Or I just trash the asset and put on marble.

Displacement can be tricky to get looking nice, you will have to play around a bit.
To tell the truth I have not used it much due to the need for heavy geometry. I have taken the opportunity to have a go.

Adaptive subdivision should help as things further away should subdivide less, but it is still experimental partly due its lack of efficiency.

One very important thing is the image quality.

I do not have a decent rock face image for displacement so I had a go with a procedural texture. For this I used “vector displacement”, vector displacement is more freaky and can make things “overlap” and displace in the 3 dimensions. It does displace and …… well I like it. :joy:

These 2 planes are just under 1Million verts each (normal subdivision). 30 million does seem overkill.

Rock.blend (117.8 KB)

1 Like

Thank you very much, that’s by far better than what I have. I believed, slapping on the material was gonna do the job, oh boy, one more big lesson learned!

Unfortunately that will not always work “out of the box”, not all images are good for displacement, you do need a high res image to start off with and often have to edit it a bit to get good results. Shadows in the image due to lighting can also give unwanted results.

I generally use bump maps from images more than real displacement and have found that blurring the bump map a bit usually gives better results, getting rid of noisy artifacts. Like everything (lighting etc) you have to tweak things about with displacement images.

The setup I made was not very “scientific” I just stuck in a few nodes on the fly, it does displace the whole geometry too much from the origin. I think you could fix that problem using positive and negative values to displace. Ie in the outputs of the noise, voronoi etc map the values (with a map range node) from 0 to one, to -.5 to +.5.

Procedural textures do give nice clean results because they are independent from resolution.

1 Like

Artifacts like thos cheap lo res jpg blocks etc? I’ve seen that in the meanwhile… Great tip blurring them, I might use some of my Topaz software to filter those things out, now that, thanks to you guys, I know a little more about the matter!

“Scientific”… I’m the monkey here :monkey: :joy:

I have several procedural material libraries, maybe I’ll find something in there. But for now I feel enlightened! Thank you!

Another tip, before blurring if you set the colour to 16 or 32 bit instead of 8 you get more gradient information. For bump and displacement the important thing is the value of the HSV, so the more info you can get in there the cleaner it will look.

1 Like

I usually upscale images with Gigapixel AI which expands the bitrate, gotta check if 32 bits is also an option. Great tip, thank you very much :smile: