Issue with Pom Silhouette Shader from UE4 Content example

hey,
I just tried the Pom Silhouette Shader from the UE4 content examples and run into some kind of weird issue.
The Shader works great, it gives a nice silhouette and the performance is also top but for some reason, height values higher than 0.01 “which is not a lot” breaks something in the shader and a dark shadow starts flying over me, no matter where i move in the editor or game mode. Reducing the height to 0.01 which shows barely the effect of pom makes the shadow go away. Any ideas what could cause the problem ?

If the shader is using pixel depth offset, it could be due to dynamic shadows. There is an issue with dynamic shadows and pixel depth offset causing self shadowing.

hey,
I was watching a older unreal paragon stream about POM in UE4, yes it is a self shadowing problem. When i dissable cast shadows on a mesh where the pom material is applied to, it works just fine. It’s some sort of limitation for POM Silhouette in comabination with dynamic lighting. The question is… is there any solution beside to dissable cast shadows on a mesh ?

Using this as a terrain material would be inpossible, casue there is no way to dissble cast shadows on a terrain…

hey,
I was watching a older unreal paragon stream about POM in UE4, yes it is a self shadowing problem. When i dissable cast shadows on a mesh where the pom material is applied to, it works just fine. It’s some sort of limitation for POM Silhouette in comabination with dynamic lighting. The question is… is there any solution beside to dissable cast shadows on a mesh ?

Using this as a terrain material would be inpossible, casue there is no way to dissble cast shadows on a terrain…

I so far have not found a workaround unfortunately :frowning: I’m hoping that something will be done about it at some point, as that would be very useful. For now, I am just implementing distance based tessellation on my landscape and detailed meshes. Apparently, parallax with silhouette works with baked lighting, but that is out of the question for my projects, and I assume yours as well. In some ways tessellation can be cheaper since geometry is more efficient than complex shaders including parallax, unless you already have millions of polys rendering. It’s a delicate balancing act with compromises especially if you want your end product to run on low and mid range systems. If I find a miracle solution, I will post an update :slight_smile: Also if you happen to come across a solution, I would also be quite interested.

There is nothing you can do about it apart from using contact shadows. If POM depth scale is small enough, you can pretty much live through with small self-shadowing inconsistencies. The miracle solution you are looking for is outputting sun POM shadows into gbuffer and blending it in during shadow projection from directional light.

Cryengine has a wondefull working POM shader with silhouette, i will start today a request thread on the forum, if you like, join it… Maybe one of the epic defs will see it and maybe invest a minute or two into it…

For Teslation, all i can say is… No matter which scenario i tried, especially Terrain, POM was a lot cheaper and had better looks than tesslation. Most users that try POM, simply use much much to high values… Min 8, Max 16 Steps setting are more than enough, if you want to go crazy you go Max 32 steps and POM will be still much more performent than tessaltion. I use POM on my whole terrain plus decals and im still capped at 120 FPS. Keep in mind that the UE4 POM shader isnt even well optimized, if epic would invest some time into it, ouh boy…