POM Artifacts when Up close

I’m having these weird artifacts when I’m close to a parallax occlusion mapped material, I followed the guide on the wiki A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums and did everything, I added a split in the UVs though since I wanted to control the tiling individually. even with the ddx ddy nodes, I still have the artifacts.

Everything is working fine except when I get close or do nothing, these artifacts show up. It only happens on the POM materials. My material settings has Min Steps = 8, Max Steps = 32, Height of texture 0.1 (should I only go for lower heights?), I also set the channel to 0,0,0,1 since my height channel is on the alpha channel.

Motion blur is off, AA is set to Temporal AA, I even changed the AA to FXAA or MSAA or None, I’m still seeing it. I’m running on Nvidia 750, Win7, everything is up to date if that helps.

Been searching around the web but couldn’t find anything about it or I’m using wrong keywords as I’m not sure how to describe it or what terms to use.

Any info on this are welcome, I just want to know what causes this

It could be caused by using pixel depth offset together with dynamic shadows. Try disabling shadowcasting for the object in question.

With or without the shadow casting it still happens, I also have set everything to static.

It seems I was able to reduce the effect when adding back the ddx, ddy and setting a higher TAA step multiplier. And changing the AA mode to TAA but at other angles it still shows.

Also I’m not sure if I should still be splitting the input(multiply node) up for ddx and ddy or if it’s fine to pipe it in directly.

I’ve removed the mask, I still have it though, but only if you move around too much.
I guess there’s no avoiding it or something.

You should not. DDX DDY expects RG input for this case.

Hey I know you probably figured this out by now, if so please share your method haha

But I am trying to solve this currently and the only way I found was to violently move the Reference Plane scalar to: -13351.116211 !!

Now of course this will bring me a host on new issues make it useless but, at least I got rid of the ■■■■ speckles!!

On a serious note, any one figure this out?? Followed several tutorials to the letter and still get this… :frowning:

Almost looks like overlapping meshes. Did you by chance Accidentally duplicate the mesh or group of meshes and now there are 2 meshes occupying the same spot ?

These artifacts are caused by depth pre-pass. You should disable it for objects, that you want to use POM with PDO on, while ensuring that depth pre-pass is not being forced on globally.

But generally, it looks like a bug to me. It should not be happening.

If you add a custom node and pass in the final PixelDepthOffset value through a call to MakePrecise(), it will fix it, but there is a perf cost. I added a reply to the forum post on this same issue with that solution here:


Deathrey’s depth bias solution earlier in the thread there is a more performant fix, but won’t work with depth inequality reject for masked materials.