It appears that sampling SceneTexture:WorldNormal for decal materials doesn’t include all mesh data, which leads to faceted normals when projecting decals on curved surfaces. According to Epic documentation here (Scroll down to the “Normal Reprojection” section) it mentions that faceting is a byproduct of the things being sampled too early in prepass depth, and suggests using the cvar r.Decal.NormalProjectionEnabled (Side note I believe that cvar is a typo on the documentation, and it should be r.Decal.NormalReprojectionEnabled as the one listed doesn’t seem to exist when I was testing.) I tried both r.Decal.NormalProjectionEnabled and r.Decal.NormalReprojectionEnabled cvars, but neither of them seemed to remove the faceting in my test project.
I found an older forum post referencing the issue that SceneTexture World Normal used to work as expected in UE4, but no longer in UE5:
https://forums.unrealengine.com/t/scene-texture-world-normals-are-not-shown-properly-on-ue-5/1171524
We ended up finding a decal normal setup as described in this youtube vid, as it includes an (imperfect) workaround to the faceting issues. (We haven’t implemented that solution yet, as we’re hoping to find a more concrete solution beforehand.)
Ultimately we’re looking for a way to get the SceneTexture World Normal to correctly sample mesh’s normal data, as we’re unsure if the cvars listed on the documentation are no longer working.
(I attached a 5.6 proj of the reproduced issue as I was testing internally with a ver. later than our project’s to rule out issues exclusive to us.)