90 likes | 204 Views
This game engine math library provides essential components for 3D graphics, including vectors and matrices for both 3D and 4D dimensions, quaternions for rotations, and key structural classes. The main class, Root, links all subsystems and manages the game loop and timers. The SceneManager oversees objects, cameras, and lights, ensuring visibility checks and camera updates. The rendering process interacts with various resources such as materials, textures, and meshes, which are loaded and managed efficiently. Animation is handled through the AnimationManager alongside Nvidia PhysX for realistic physical interactions.
E N D
Math library • Vector – 3, 4 dimensions • Matrix – 3, 4 dimensions • Quaternions for rotations
Structure(1) • One main class: Root • Has links to all subsystems • Controls the game loop • Controls timers • Initializes subsystems
Scene Management • SceneManager keeps track of objects, cameras and lights • Makes visibility checks • Updates cameras • Sends objects to renderer for rendering
Rendering • Done by renderer • Can render objects that use vertex buffers and index buffers • Each frame is rendered for every viewport available • Communication with SceneManager is done through a queue
Resources(1) • Materials, textures, meshes • A material has information about the surface of an object; can have multiple textures; for now they are created manually • Textures are loaded with a texture manager with a default loader; the loader can be changed;
Resources(2) • Meshes contain geometric information about objects in space; • They are loaded with the MeshManager; the MeshManager can have multiple loaders registered; • Each mesh can have multiple materials and submeshes; each submesh has only one material
Animation • With AnimationManager and Nvidia PhysX • The AnimationManager updates the animations for meshes that have animation • PhysX is used for simulating physical interaction between objects