Architectural updates
As we move from chapter to chapter and study different WebGL concepts, we should also update our architecture to reflect what we have learned. In this occasion as we are handling a lot of uniforms, we will add support for multiple lights and will improve the way we pass uniforms to the program.
Adding support for light objects
The following diagram shows the changes and additions that we have implemented in the architecture of our exercises. We have updated Program.js
to simplify how we handle uniforms and we have included a new file: Ligths.js
. Also, we have modified the configure
function to use the changes implemented in the Program
object. We will discuss these improvements next.
We have created a new JavaScript module Lights.js
that has two objects:
Light
—aggregates lights properties (position, diffuse, specular, and so on) in one single entity.Lights
—contain the lights in our scene. It allows us to retrieve each light by index and by name.
Lights
also contains the...