implement a lot of the stuff in the Graphics module, including the Mesh, Model, and shader classes. These are different from the AssetLoader structs because that was just doing file IO with assets and storing data, but this is the second half of process where we communicate that data to the GPU for rendering.
Requires high level implementations of Model, Mesh, Shader, Texture, Material, etc, that makes use of OpenGL API wrappers to avoid directly calling the API.
Also requires a Renderer class that is used by the rest of the engine to orchestrate the rendering process, deciding which meshes to render and where, etc.
implement a lot of the stuff in the Graphics module, including the Mesh, Model, and shader classes. These are different from the AssetLoader structs because that was just doing file IO with assets and storing data, but this is the second half of process where we communicate that data to the GPU for rendering.
Requires high level implementations of Model, Mesh, Shader, Texture, Material, etc, that makes use of OpenGL API wrappers to avoid directly calling the API.
Also requires a Renderer class that is used by the rest of the engine to orchestrate the rendering process, deciding which meshes to render and where, etc.