By now you realize that surface normals are the most
important geometric surface characteristic used in computing
illumination models. They are used in computing both the
diffuse and specular components of reflection.
However, the vertices of a model do not transform in the
same way that surface normals do. A naive implementer might
consider transforming normals by treating them as points
offset a unit length from the surface. But even this approach
will not work. Consider the following two dimensional example.
The problem with transforming normals occurs when objects
undergo an anisotropic scaling (scaling that is not
uniform in all directions). Such scaling results only
from affine modeling transforms (Why not Euclidean transforms?).