I’ve made a decal material with a normal map attached, and I’m now attempting to get that normal map to distort using a parallax heightmap. However, for some reason, this seems to have no effect on the material. The height map appears to be totally ignored. I’ve set up a bump offset node, and am feeding the heightmap into it, but there is no change to the resulting decal. I have no idea why this would be, since the parallax node is independent of the rendering pipeline, I’m merely stating what I’m seeing.
The TextureScale node scales and offsets the UV coordinates (useful for using instanced materials at multiple scales). Otherwise all these parameters are set via blueprints (though I have also tested with texture samplers directly in the graph, with no change).
I find it extremely odd that this would cause a problem, but hopefully it’s just something stupid I’ve done.
I was able to get the decal to correctly render with the BumpOffset_Advanced Material Function. Can you try replacing the your Bump Offset node with the Material Function and see if you rendering corrects itself, for reference, I used a reference plane of 0.5 and a straight camera vector WS node.
As you can see, it alters the UVs to allow multiple loops of the material. I find this is useful when instancing materials to place them on multiple meshes with different UV maps.
Thank You for your patience. I was able to finally track this down and it is indeed a bug with Decals not being able to read the tangent space defined in the Bump Offset. I have entered a bug report, TTP# 339889, and will keep you informed as our Engineers work toward a resolution.
I’m not sure if this is related, but world aligned textures don’t seem to work on decals, either. I’ve just tried adding a world-aligned normal map, and they don’t read correctly on one axis. If this is related, it might be useful to know, if not, I’ll ask in another question about how to resolve this.
This looks like it would fix the issue, have you entered a pull request on GitHub to integrate this change with the engine source code? If so please let me know the pull request number and I will bring it to our engineeer’s attention. If not (or even if you have), put a note that this pull request will fix the issue reported as UE-3738.