[UE5.7] How to fix detail lighting artifacts (ringing and dark areas)?

I’m trying to use some Megascans cement textures on a block mesh (ie. a cement block). I’m using world aligned textures, but if I just use them directly, it has the same effect. I’m only using Diffuse, Normals and Roughness. This seems to be purely Normals related. I can’t seem to fix this. Blurring the normal map and using a LOD Bias of 2 helps a lot, but then most of the detail is lost. This is zoomed in, but stays there even if you zoom out. It just gets less noticeable, but you can still see it.

Anyone know what is causing this? This shows up in the material preview as well. I can set roughness to 1, specular to 0 and it still shows up. The normals all look fine. I’ve made sure they’re not 0 and Z isn’t 0. This only happens on highlighted areas when I’m looking away from the light source. So they are supposed to be a bit brighter, but shouldn’t go to black. Lumen on/off doesn’t matter. Couldn’t find any scalability settings that did anything. Flipping green (or red) didn’t do anything other than shift the artifacts around. And it’s not related to tangent normals or world normals. Normalizing the normals doesn’t help either.

Anyone seen this before?

A second question would be how to use WorldAlignedNormal. I’m using WorldAlignedTexture on the normal right now with the Z pin just to have the flat area. But WorldAlignedNormal’s XYZ output pin does not work vertically it seems. I get streaks.

I figured out a few things. The green channel was already flipped in the texture. But I noticed the dark areas (the proper ones) were not in the correct orientation. So I flipped the red channel.

But then I found out how to use the WorldAlignedNormal function. It’s Normal input is in tangent space unlike the WorldAlignedTexture function. So you just need to leave it at (0,0,1) or convert the VertexNormalWS node to tangent space. This will correctly flip the x axis and whatever else.

This fixes like 90% of the artifacts. It seems what’s left of the artifacts is that the normal is too horizontal. This may just be a side effect of how the normals were generated with the Megascans textures. I guess I’ll write a function to ensure the normals aren’t too flat.

If no one has a different solution, I guess I resolve this as is.

Looks like neither the green nor the red channels need to be flipped. Use the original normal map.

Use (0,0,1) Normal in WorldAlignedNormal.

For the remaining artefacts, you can use Blur2 mip blend setting and use LOD Bias of 1.

If you want better quality, then you need to check for normals that point toward both the camera and the light source using dot products. If so, then adjust the normal by adding those dot products multiplied together to the Z value of the normal and normalize.