So, to understand the problem, you have to think about what happens internally with the normals. First, the surface shader writes them into a deferred render target in world space, outputting a normalized RGB value into some pixel representing some world space direction. Then, our decal shader writes into the very same…