POM material

Hi there!

Would you know how to adapt the custom code inside the POM function to allow entering a Texture Sample instead of a Texture Object? I have been trying it but without success on Landscape layered materials. is because I have more than 16 “materials” inside my Material, so with Texture Samples we can pass that limit, but with Texture Objects is impossible as they don’t allow to be Shared: Wrap.

@, are you planing to share or to sell it? soon?

Thank you all!

I’ve ran into a complication, which I cannot find reasonable approach to with sPOM. It is mip selection for the textures, that would be sampled with parallax.
Given a prism as shown with UVW texture coordinates, how can I effectively calculate partial derivatives of UV at point p0 ?

https://i.gyazo.com/feb943725c81072bf528932e0edd14a4.png

For the time being I am projecting dW onto V or U axis and using dV or dU directly, depending which fin was hit. For shell, both dU, and dV, are used directly.

The is abrupt derivative change at borders between shells and fins, which causes lower mip selection and as a result, visible seam.
Any way of dealing with it?

Or perhaps there is a more elegant approach of still having anisotropic filtering with sPOM ?

Use DDX/DDY & Gradient version of SampleTexture2D ?

Hey everyone,

We have just ported our project to 4.18.3 and noticed a huge slowdown for materials using a basic parallax mapping shader.

To give you an idea:

In 4.17.2, it was giving a 5% perf hit compared to “no parallax” shader
In 4.18.3, it skyrocketed to more than 40% performance hit.

Nothing was changed, exactly the same level, same assets etc… And the material looks visually similar, so I really don’t know where can come from.

Did any of you experienced the same thing?

Here is a screenshot of the material, so you can see how it looks like:

I did not notice any difference between 4.15 and 4.19
Something must have changed about your settings.(Deph pre-pass ? )

On a side note, max steps multiplier should be lerped between 1 and 1.2 not 0 and 1.2

Thanks for your answer! As we were having other performances issues with 4.18, we ported to 4.19 today and everything is working great (even better than 4.17).
And thanks about the lerp, I have fixed it!

Hi all,

I have reordered the POM function internal code to be more comprehensible and easy to follow and analyze. I have deleted too the TexHeight field on the second custom HLSL code as mentioned that it wasn’t necessary anymore, and deleted one DDY and one DDX node which were called twice. The rest is exactly the same.

So here you have! I wish it’s useful for some of you:

(If it is, is there a way to suggest it to be updated in the engine on next versions? As maybe hey won’t see ).

Best regards!

Hello ,

I am trying to make a vertex paintable POM shader. Failing even a POM material that transitioned through a mask would be very helpful.

Could you please possibly show the full graph here? what is going into the simple grad custom nodes and how does interact with the POM node? Where are the outputs of the height lerp going and how is implemented to the Base colour, Normal and ORM maps?

1 Like

Hi! Help me please. How to fix POM error when using decals. In the engine, everything is displayed with distortions, the POM itself and the shadow from it. If possible, please write in more detail. I’m in business a complete noob. Thank. I attached a link with a video recording of the error. Decal and POM - How to fix POM Decals? Help me, please. - YouTube

It was once discussed that virtual texturing can help when Blending POM. Now we have virtual texturing. What about POM and Blending POM with it?

Theoretically doable, but generally, not practicable.