How is it that there are no cameras in a 3D computer-graphics technology? Well, let's rephrase this: WebGL does not have a camera object that you can manipulate. However, we can assume that what we render in the canvas is what our camera captures. In this chapter, we are going to solve the problem of how to represent a camera in WebGL. The short answer is that we need 4x4 matrices.
Every time we move our camera around, we will need to update the objects according to the new camera position. To do this, we need to systematically process each vertex and apply a transformation that produces the new viewing position. Similarly, we need to make sure that the object normals and light directions are still consistent after the camera has moved. In summary, we need to analyze two different types of transformations: vertex (points) and normal (vectors).
...