Problem with POM(Parallax Occlusion Mapping) + Decal Actor

Hi,

I want to make some dents in a plane. To make the intersection more natural, I utilized the POM and PDO (Pixel Depth Offset), and the result comes great with normal material, POM works, PDO works:
image

But when I tried to implement with decal, the PDO is not really working. :smiling_face_with_tear:

My idea is telling the receiver(ground) the height by Specular channel:
image
When treat it as emissive color, it works:
image

But when I connect it to PDO, it fails with “your scene contains a skydome mesh with a sky material but it does not cover that part of the screen”:


image

I believe it might have to do with the render pipeline of UE but not sure. Any one know the reason?

Version: UE 5.0.3

it’s due to the pipeline order that depth buffer is produced before DBuffer, which contains the depth offset value that is intended for affect the depth buffer.
That build up a circular dependency relationship.
Any one has any good solution?

Unfortunately…
Per Ryan Brucks, the tech artist who authored the POM node in Unreal,

Not only that, PDO doesn’t effect shadow casting, so even if you did manage to get it to work somehow - if the decal was on a shadow casting object, the receiving objects surface would fill the dent with shadow.

1 Like

You are right, thanks for the helpful information!