POM Lighting Issue

I’ve setup a material with POM. Everything’s fine, except this:

The lighting is bugged on the material.

After some time tinkering around, I found out that if I set Manual Texture Size in POM node to 0, it fixes the issue.
Is that supposed to work like that? Or did I screwed something up?

Here’s my material:

This looks like it is probably self shadowing from PDO.

When using pixel depth offset, you have to disable shadowcasting on your mesh, as PDO will push the pixel depth behind the shadow depths.

You are right, enabling “self shadow only” on the mesh does remove the lighting glitch.

I’m just curious though… my workaround with “manual texture size” also fixes it as well as allows to keep shadowcasting. Is there a downside to what I did, however? Because frankly, I don’t even understand why it fixes it and what it does exactly.

I have not tested it but those settings only affect PDO, so by setting it to zero the reason it works is that it is essentially disabling PDO (which causes the self-shadowing artifact). Assuming that’s correct then the downside to doing it that way is that you’re still paying the performance cost for evaluating that part of the shader even though you aren’t actually using it because the texture res is 0.

If it’s disabling PDO then why my parallax material still works as intended? I’m confused about that.

PDO does not impact the parallax effect, you could leave it unplugged and the parallax will still work fine.

The PDO aspect is there to resolve the artifact you get when a parallax mapped surface intersects with other geometry in the world.

1 Like

Ah! I see. Thanks!
So, am I understanding this correctly that meshes with POM can’t cast shadows without running into those lighting artefacts I’ve mentioned in my original post? Shadowcasting should always be disabled?

This is only an issue if you are using POM with Pixel Depth Offset. If you don’t use pixel depth offset then you can leave shadowcasting on. If you are using PDO then you should disable shadowcasting in your mesh.

1 Like

Got it, thanks!