Matrix Stacks

A matrix stack provides a way to apply local transforms to individual objects in our scene while preserving global transforms.

The matrix stack works as each rendering cycle (each call to our render function) requires calculating the scene matrices to react to camera movements. We first update the Model-View matrix for each object in our scene before passing the matrices to the shading program (as attributes). We do this in three steps:

  1. Once the global Model-View matrix (such as camera transform) has been calculated, we save (push) it onto a stack. This allows us to recover the original matrix once we’ve applied local transforms.
  2. Calculate an updated Model-View matrix for each object in the scene. This update consists of multiplying the original Model-View matrix by a matrix that represents the rotation, translation, and/or scaling of each object in the scene. The updated Model-View matrix is passed to the program and the respective object then appears in the location indicated by its local transform.
  3. Recover the original matrix from the stack, and then repeat steps one to three for the next object that needs to be rendered.

The following diagram shows this three-step procedure for one object:

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
52.14.121.242