VideoCommon: Add comment explaining why only the first normal gets normalized

Co-authored-by: Scott Mansell <[email protected]>
This commit is contained in:
Pokechu22andScott Mansell committed 2022-04-22 16:54:38 -07:00
1 parent 2a5c77f43f
commit 784079853d
3 files changed
+15 -2

No files matched your search

@@ -97,6 +97,11 @@ void TransformNormal(const InputVertexData* src, OutputVertexData* dst)
MultiplyVec3Mat33(src->normal[0], mat, dst->normal[0]);
MultiplyVec3Mat33(src->normal[1], mat, dst->normal[1]);
MultiplyVec3Mat33(src->normal[2], mat, dst->normal[2]);
// The scale of the transform matrix is used to control the size of the emboss map effect, by
// changing the scale of the transformed binormals (which only get used by emboss map texgens).
// By normalising the first transformed normal (which is used by lighting calculations and needs
// to be unit length), the same transform matrix can do double duty, scaling for emboss mapping,
// and not scaling for lighting.
dst->normal[0].Normalize();
}