Seeking beetr understanding of normals

(please forgive the typo in my title)
Last week we were diagnosing some outsourced art in our engine, and are seeing a frequent issue that may sound familiar to some:
looks fine in 3DS Max/Maya, but the exported normals are whacked in the engine.

It took us a bit of diagnosis to determine the vertex normals were somehow messed up.
But as the TA here I was faced with a lack of understanding: I didn’t know why they were messed up on a technical level, or what DCC operation (filpping? unifying? smooth group? hard soft edges?) to recommend for a solution.
In fact I can’t say I understand fundamentally what such operations actually do in a technical sense. I gather form previous reading that to a game engine, there really are only vertex normals, and that edge and face normals are just compouds of vertex normals (please correct me of that’s not right,) but that’s about as far as my understanding goes.

So, I’m looking to strengthen my understanding of all things normal related. Are there any good articles, old TAO or CGTalk wikis, posts ,or even books, I should check out?

This might help :slight_smile:

http://wiki.polycount.com/NormalMap/

what kind of issues are you seeing?

there is very well known issue in Maya with Flipping a mesh by using a Negative Scale, and then Freezing the Transform. This will result in Normals that look correct, but are in fact, inverted. A classic case of software trying to protect you from yourself and just making matters worse…

an example:

We think the issue is related to building in Maya and importing to 3DS Max,
combined with mirroring geometry along the horizontal axes and sharing UVs -so the issue you mention may be involved.
Even a flat (128,128,255) normal map causes these issues, while disabling normal mapping looks fine.
I’m guessing the combination of unique vertex data plus V flipped UV data is creating anomalies - again i’m vaguely guessing.
We have instructed the outsourcers to avoid mirroring uvs across h and v axis as well as minimizing the back and forth between maya and max.

i am not a graphics engineer, but i do know that you have to be very careful with the binormal and tangent space along the mirrored edge of uv coordinates. could be a problem in your shader? are you using standard Max Shader to render the normal map in the viewport?

that’s a an in engine screenshot, not Max. Everything looks dandy in Max.

you have to be very careful with the binormal and tangent space along the mirrored edge of uv coordinates

Can you elaborate or share any links to sources on this issue?

http://lmgtfy.com/?q=rendering+normal+maps+correctly+across+mirrored+UVs :laugh:

This one of full of examples, but mostly from an artists perspective and not from an engineering viewport.
http://wiki.polycount.com/NormalMap/#Mirroring

A little bit more details on the error you have been facing would have been better i guess…looking forward to your new posts.