Physically based normal displacement UI request

@andy, @DavidEranen, @nathanletwory,

could you please add a control for black point and white point to the Physically based material / normal parameter before the UI freeze settles ? I really would like to use this V8 feature in the future but without the ability to control the displacement direction, it remains useless as it always displaces in both directions.

I understand that the displacement happens in the GPU and therefore it is super fast. Would you please consider that the preview mesh can be added to the document too ?

thank you,

Isn’t that what these setings do?

That would be useful indeed,
RH-74055 Ability to extract the PBR displacement mesh

Hi @Gijs, not really. The setting you show are from the noise shader which seems to support clamping and allows to enter negative values. I would like to control the displacement distance and direction in the physical material bump / normal displacement slot using bitmap images, mostly exr or tif:


I’ll attach an example image and file below so you can try to reproduce some of bugs i see with this feature:

  1. The displacement is always performed in both directions. I want to displace only in one direction and control the exact distance. It would be optimal if i have a black and white point control so i can decide if the displacement adds or subtracts from the object (same as in the displacement modifier in the object properties).

  1. As visible in your example screenshot, normals (and therefore reflections) are not right once a mesh (or rendermesh) is displaced using the physical material. It looks like flat shaded and the display seems dull unless you’ll apply the same image or shader to the bump slot and increase the strength to 100%.

  2. Clipping of the displaced geometry is not performed properly in rendered display mode. You can see that with the attached example file below.

Btw. I’ve tried extensively to use the applied image’s output adjustment to control the displacement so it only displaces outward in the normal direction. Since the clamp feature in an image slot is limited to values between 0 and 1 this cannot be done. I think that clamping is the wrong approach in general, what is required is to remap the displacement range from -0.5/+0.5 to 0.0/1.0. Additionally, image adjustments fails for exr images which i use mostly to prevent problems with the limited grayscale range and the inherited noise from normal png or tif images. (eg. try to invert the displacement in below example using the output adjustment).

DimpleSmall.3dm (503.9 KB)
DimpleSmall.exr (268.2 KB)


what you want seems possible with the addition texture, would this work for you?

addition-texture.3dm (452.7 KB)

The other two are bugs indeed
The displacement is on the list as RH-63314 Objects with PBR displacement clip in the view

and for the normals: RH-75364 PBR displacement should affect normals

well, not really, doesn’t work in raytraced

Hi @Gijs, thanks for making these tests. I can say for sure that any of these tricks using multiply, addition, clamping etc. will not work out as they are all image based. I’ve tried to explain that here, here, here and here.

If you look close to your example you’ll spot that it does not start the displacement at zero. This is because you cannot enter the proper gray value to add to, it is not 50% gray, you would need to enter 127.5 to get there.

Since i’ve been trying to explain this for a long time, i’m wondering why this is such a big deal ? Math wise it should be easy to multiply the entered displacement distance and create a vector starting from the current mesh vertex with the distance as length. Then just add this vector to the vertex to get the displaced vertex.

Ideally i would like to control the min (black) and max (white) values for a displacement numerically. I often get the displacement texture with requests like: “The total depth for the structure would be 1.5mm but you can get in 0.25mm and then deform 1.25mm outward”.


I don’t think it’s a big deal, I will make a report of it. It looks like the earlier requests never made it to YT, or, at least, I cannot find it.

RH-75369 PBR: Displacement: add ability to offset values

1 Like

thanks @Gijs for adding this to the bugtracker.