The Basics of Normals
I didn’t understand vertex normals until I started learning about 3D programming. But you can’t be a good polygon modeller without them, and they’re very simple. Looking at my previous work, every model I had made before I understood normals was messy and inefficient in comparison to my later ones. And you need to understand vertex normals before you can move on to more advanced concepts such as normal mapping.
There’s not too much complicated theory behind vertex normals. Here are the basics. For each vertex, an ‘imaginary line’ projects outwards. It’s invisible, but it affects the lighting. When you create a flat shape - for example, a simple ground plane - the normals all point at right angles to the face. Because they are all parallel, they all affect the light in the same way, and the plane appears flat.

But when you have two polygons joining, there is a choice about what to do at the shared edge. You can either treat them as two separate flat surfaces, giving the vertices at the shared edge normals that point away from each other. Or you can take the average of the normals, making the normals point in the same direction. If you do this, the normals for the polygons are not parallel, and the 3D renderer will interpolate the lighting between the polygon’s vertices. This gives the impression that there is a smooth bend in the surface, rather than a sharp crease. This is referred to as ‘softening edges’ in Maya, or ‘smoothing’ in Blender.

Looking at the following example, we can see how this technique can be applied to a model.

By default, the polygons are ‘flat’; they have parallel normals. When rendered, the polygon boundaries are obvious; the model looks blocky.

But simply averaging all of the normals results in this horrible monster. Definitely not what we want.
The problem is that lots of the edges are obviously meant to be sharp. When the renderer tries to average the lighting over a sharp edge, it is very likely to give undesirable results. Softening an edge is never a substitute for rounding or bevelling.

We need to split only some of the normals; the ones along the sharp edges. It would be very difficult to do this manually, but all modelling applications have a tool for doing this. Just select the edges that should be sharp, and mark them as sharp using the ‘Harden Edge’ tool in Maya or the ‘Mark Sharp’ tool in Blender.
Most applications also have a tool for selecting sharp edges automatically, which can be very useful, but on many models you will need to tweak the results by hand.

And here’s the final result. The curved areas are lit smoothly, but the polygon count is still low. Notice that the silhouette reveals where the polygons meet. The only way to get past that is to use more polygons.
Understanding normals allows you to achieve effects that would otherwise require you to add a lot of polygons. This is vital when modelling for games, but still important when working towards prerendered video. It allows you to simplify your meshes, making it less likely that you will introduce errors in rendering or animating.