I’m trying (and failing) to create super-accurate per-pixel normals for a Sphere object. The problem is both the texture and the mesh don’t give enough fidelity, there’s still a lot of break-up and visible seams, particularly with reflections that seem to be very sensitive to this.
I thought just taking World Position and Normalizing it, then transforming to Tangent Space would give me the correct normals, but apparently not. Do I need to rotate them or something as well?
That’s exactly what I thought at first too, but surprisingly it didn’t give me the right result, especially with the reflections - I had to transform from World > Tangent.
You have to specify that the Normal input is in world space instead of the default tangent space. There’s a checkbox on the material - bTangentSpaceNormal - uncheck that then you can hook up world space normals.
Ah, thats because we both forgot that for that to work, you need to uncheck “Tangent Space Normal” in the material options.
if you do that, it will be a tad cheaper. Otherwise you are paying some tiny cost to transform into tangent space and then back to worldspace by the engine.