In order to light the terrain, normals must be generated from which we can measure the angle of a light ray’s incidence with the terrain geometry, so that we can decide how bright a terrain triangle will be.
For the uninitiated, here’s a quick and dirty tutorial on the idea of computing light effects:
The closer the green ray is to pointing at the camera, the brighter we make the segment of terrain that the blue incident light struck.
I’ve been experimenting with generating normals on the fly and generating a normal map for the terrain.
I’ve decided to go with computing a normal map for the terrain, and updating this map whenever the terrain geometry changes (which it will). This allows the terrain to appear to have lots of detail in the distance, because there are always many normals, even though it really has much fewer triangles per chunk in the distance.