KhronosGroup/glTF-Sample-Models

Sponza model normal maps have incorrect Y direction

aejsmith opened this issue · 2 comments

glTF specifies that normal maps have Y as up, however the normal maps for this model have Y as down.

My engine currently does not use precomputed tangents from the model, instead it always calculates the tangent basis in the pixel shader. When doing this, I get upside down normals for the Sponza model, so I have to manually invert Y to fix it.

Example textures where it's particularly obvious:
https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/Sponza/glTF/759203620573749278.jpg
https://github.com/KhronosGroup/glTF-Sample-Models/blob/master/2.0/Sponza/glTF/13982482287905699490.jpg

Generally I agree. The spec for normalTexture is fairly clear on this.

That said, I'm not sure it's legit for readers to ignore the embedded tangents and compute their own. But that doesn't make it OK for models to flip the Y axis in the normal map.

Fixed in #336.