Cameras
We have all of this data in our 3D world, representing objects and other visuals that we need to get onto the screen; however, how do we go about describing what is in our limited view? For this, we need a camera. A camera in this case is a virtual representation of our view into the world. It stores information about where we are, what direction we are looking in, and how we need to transform the third dimension so that it either looks real or useful. Using cameras, we can also define part of the gameplay. Players will play a first person shooter (where the camera is in the head of the player character) differently than a third person shooter, where the camera sits over the shoulder of the player character. Back in Chapter 2, Drawing 2D Sprites, I described the two different projections we use to do that transformation: the perspective and orthographic projections.
By combining all of the data into a single matrix, we have a nice and easy way to transform all of the different vertices...