This chapter focused on making our code capable to handle the loading and rendering of multiple objects. The other important aspect we covered in this chapter was the use of stacks to maintain the state of mvMatrix
for object transformation operations and rendering.
The other major code update was addition of the rendering of our scene at a predefined frame rate. We also learned about positional lights and how to handle multiple lights in any scene. Also keep in mind that using lights in a scene is a GPU-intensive operation and if you have added a specular component to your light, then the calculations become more intensive. The overall performance of your game will depend on the intelligent use of lights in your scene.
We will play more with textures in our next chapter and will learn how to beautify the scenes even more.