Although we touched upon perspective transformations in Chapter 1, Getting Started with WebGL Game Development, and have been using our perspective matrix throughout our code, we would like to discuss it in depth here.
Nearly all 3D games use a perspective projection to render their scene. Like the real world, this simulates the application of a perspective to objects rendered within the game so that objects that are further away appear smaller than objects that are nearer.
In addition to this obvious size effect, more subtle effects of perspective are picked up intuitively by us, and we will add a substantial feeling of depth to the rendered scene. The sides of a cube would seem to narrow slightly as the distance from the viewer increases, thereby allowing us to automatically determine the exact position in which the cube is situated.