Splitting the model class into two parts
Right now, the code is made to show only a single glTF model. The options to show the model or the skeleton, the drawing settings, and the animation properties were created to support one and only one model on the screen. To render multiple models, we must adjust the application code.
In a naive solution, we would simply loop over a vector of glTF models and do all the preparation and drawing steps for every model. This way of drawing models works, but the loading and data extraction phases will take a lot of time and waste space in the main memory, as we need to add vertex data and animation clips to every single model.
To achieve proper instancing, we will split the model class into two separate classes. The original GltfModel
class will keep the shared data for all instances, and a new GltfInstance
class will maintain the variable per-instance data.
The full code for this section is available in the chapter14
folder, in the 01_opengl_instances...