Let's start by looking at the block diagram of the existing engine (left) with the new expected scene graph (right) design. This design is segregated into many simpler reusable modules, where each module is self-explanatory in the image itself. The Object
module is a base class for most of the other modules. These modules exhibit the parent-child relationship. Similarly, modules that support the event handling process must be inherited from the Event
.
In the following image, you can see the hierarchical relationship among different modules in the scene graph. The Renderer
is a graphics engine that contains various scenes. These scenes can be added to and removed from the rendering engine dynamically. A scene contains one or more cameras as per its requirements; it also contains models that the scene needs to render.
Transformation is managed in the model-view-projection analogy, where the modeling transformation is carried out in the Model
module...