Skip to content
Part IA Michaelmas Term

Normal Vector Transformation

The Problem

Normal vectors transform differently from positions!

For transformation matrix M\mathbf{M} applied to positions, normals transform using: N=(M1)N\mathbf{N}' = (\mathbf{M}^{-1})^\top \mathbf{N}

Derivation

The normal N\mathbf{N} is perpendicular to the tangent vector T\mathbf{T}: NT=0\mathbf{N} \cdot \mathbf{T} = 0

After transformation, T=MT\mathbf{T}' = \mathbf{M}\mathbf{T}. We need NT=0\mathbf{N}' \cdot \mathbf{T}' = 0: N(MT)=((M1)N)(MT)=NM1MT=NT=0\mathbf{N}' \cdot (\mathbf{M}\mathbf{T}) = ((\mathbf{M}^{-1})^\top \mathbf{N}) \cdot (\mathbf{M}\mathbf{T}) = \mathbf{N}^\top \mathbf{M}^{-1} \mathbf{M}\mathbf{T} = \mathbf{N} \cdot \mathbf{T} = 0

Simplifications

Pure Rotation

If M\mathbf{M} is orthogonal (rotation only): M1=M\mathbf{M}^{-1} = \mathbf{M}^\top

Therefore: N=MN\mathbf{N}' = \mathbf{M}\mathbf{N}

Normals use the same rotation matrix as positions.

Uniform Scale + Rotation

The scale factor cancels (normals are renormalised anyway): N=RN\mathbf{N}' = \mathbf{R}\mathbf{N}

Non-Uniform Scale or Shear

Must compute and apply (M1)(\mathbf{M}^{-1})^\top: N=(M1)N\mathbf{N}' = (\mathbf{M}^{-1})^\top \mathbf{N}

Translation

Normals are unchanged by pure translations (direction vectors).

Why It Matters

Non-uniform scaling distorts normals:

  • A sphere scaled to an ellipsoid needs transformed normals
  • Using M\mathbf{M} directly would make normals point in wrong direction

Normal transformation showing correct vs incorrect transformation after non-uniform scaling

Summary

  • Normals transform with (M1)(\mathbf{M}^{-1})^\top, not M\mathbf{M}
  • Pure rotation: normals use same matrix as positions
  • Uniform scale: scale cancels after renormalisation
  • Non-uniform scale/shear: must compute inverse transpose
  • Translation: no effect on direction vectors

Past Paper Questions

2025 Paper 3 Question 4(a)(ii): How would you obtain the transformation for the normal using scaling, rotation, and translation? Simplify if possible. [2 marks]