POM material

Oh my bad! I do apologise,I am not using source and don’t really want to change that so any idea on the hotfix landing?

Is it just me, or is the new AtmosphericLightVector node reversed? I have to multiply by -1 before piping it into the LightVector in the POM node.

I started working with POM and have run into issues when using it for walls and floors. I am get projected edges and I am not sure if is expected (because of the angle) or if I am doing something wrong. I have scoured the internet and have not found any answers.

Any advice would be appreciated.

EDIT: After some thought it appears that is simply the side of the mesh showing up. So obviously my textures are not lined up properly so I am seeing the seams…I guess I need to make sure my UVs are aligned properly to wrap around or make the sides transparent. Any other ideas?

EDIT2: Ok I just switched to using a plane, solved it perfectly. Sorry for the noise. Will leave here in case someone else is as dumb as me!

After changing to planes.

Hi, I have a question about POM and world aligned textures. Has anyone already made work with world aligned textures ? I’ve been struggling to get it working.

I did, but I did not use it outside of experiment with any practical application due to poor usability/performance ratio, and generally would not recommend using it, unless it is something very specific you are after.

Well the is that the project I’m working on not all the models have correct or proper UV’s/ UV size. And with world aligned textures would solve my, would you mind maybe sharing how you did it ?

Does anyone have any idea why I’m having these strange artifacts when I’m close?
I have my setting on TAA, it lessens it but I’m still getting it, if I set it to none it gets worse. My height map is the alpha channel of my mraoh texture.



4e6300558028f7dd77209820d5dc94a6722e022a.jpeg
HighresScreenshot00006c.jpg

How fix problem, guys?

So I read through thread. It seems POM with silhouette clipping is not supported at time. Is that the verdict? (UE v4.18)

Nope, it is fully supported.

https://i.gyazo.com/ed4a19b73e9e3360225d061886b3ee6b.jpg

It is just that you need to implement it yourself and it is not exactly the most trivial task.

@Deathray Do you have the code for that silhouette clipping? It looks awesome!

The shot might be a bit misleading, simply because that it was taken at 64 steps. You’d inevitably use lower step count on practice, thus it won’t look that appealing.

is more of a coffee-time project and I still have a ton of issues to deal with before it can be called a proper implementation, here major few:

  1. It is just smooth shell mapping, not curved shell mapping, so the the heightmap is not smoothly interpolated across the surface and the result is a bit faceted. You can see that on larger sphere on the shot.
  2. I am not yet handling correctly the case, where ray exists and returns to the same prism, before reaching max steps.
  3. There is some bleeding between prism sides on the border of the screen and I did not track the cause yet.
  4. Need to add search refinement step and actually test if it would be faster to remove all flow control and unroll POM loop or keep step count dynamic.
  5. Self-shadows work only for one directional light. ( I have a potential way to make them work for n lights at fixed cost, but needs more work)
  6. Self-shadows might be wrong at screen edges, but is mostly never noticeable.
  7. The way I calculate MIPs for prism sides is pretty strange and inefficient. Sadly I did not find any info on that, so had to research on my own.
  8. Pixel shader is bulky as hell. Tracing through a single prism is slower than conventional POM, but on top of that, you never know how many prisms you’d have stacked. Can be anything from 1 to dozens, depending on mesh topology, POM height and viewing angle.
  9. Geometry shader puts a soft cap on the total triangle count of objects with silhouette pom in the scene.

I would expect shadows would require Pixel Depth Offset and contact shadows to work properly. In an ideal world we’d be able to use POM for fur shading, but for now any implementation that gives bricks some depth at the edges of columns would be really nice to see. Mid-High-level PC should be the target for POM with silhouettes.

Here it is on the actual mesh:

https://i.gyazo.com/212b66d9655a851e07f1859f542b2892.jpg

Side by side comparison:

There are better alternatives to fur rendering.

Despite it being more than 10 years old, it still seems to be high-end only .

can you please share the blueprint material code?
we all would be very appreciated. Thanks.

You’re telling me! There were realtime reflections in Gamecube games! But back then overall lighting, rendering, and post processing weren’t so complex. Nowadays we have not just HD but 4K UHD in HDR, and 60f is the target. All in all even though graphics hardware has improved, so have our standards. And since most materials can get by without requiring POM, we have people messing with VR on mobile devices that need to hack and slash their shaders down to get reasonable performance. And once dynamic GI gets big, we’ll go through the motions once again.

POM will basically always be a high-end expensive that requires cutting down the rest of the game’s rendering to support. I just finished a 4K, 60f game for a client where tessellation actually performed better than POM!

Amazing work!

Is there any tutorial or documentation to have working?
I tried to get it working many times in the past without success.

It is such a shame there is no easy way to have sPOM by default.

Not intending to in the nearest future. Might release as a , at some point, but it would be not as useful ,as you need to change the engine a bit for proper integration.

There is a detailed PDF regarding implementation.

There is an alternative approach. I believe Brucks described it earlier in thread(or was it the other thread?).

It has downsides, but you can have it in stock engine without plugins to some degree. It requires baking additional maps(either directional curvature or at least two vectors from tangent space) for mesh, you want to have sPOM on.

Provided that your mesh is dense enough, and has no significant stretching in the unwrap, it would look almost as good, as prism POM:

https://i.gyazo.com/3a72c504dc54dd8a5767d9878b5344ff.jpg

I’ve experimented with it a bit, but did not find it that useful, however sometimes it can be an option.

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!