--- /dev/null
+ +-------------------+ +-------------------+ +---------------------+
+ | | | | | |
+ | | | | | | +---------------------+ we need a second renderer for the
+ | scene | | object | | static renderer ++ | | objects (1 renderer per scene =>
+ | | | | | || | renderer of | we can load/update the shader
+ | | | | | +----------+ the objects' +----------+ once for all the objects - we
+ +--------+----------+ +--------+----------+ +-----------+---------+ | scene | might have hundreds)
+ | | | | | +
+ | | +---------------------+ +
+it stores all the resources | | it will need
+responsible for loading, cleanup | | GL/VK backends
+storage | +-------------------------------------------------+ all the draw functions!
+ | | for
+it creates the objects using + + + unctions
+the assimp nodes info contains: the static renderer stores all |
+(assigns mesh, material and +--+ * ptr to mesh (geometry) the information about the world |
+ testures to objects) | * ptr to material (contains ptr to texture) +--+ and the static scenes |
+ | ----------- | |
+ | * transformation (Mat4) +-------+------+ (shaders, modelling, viewing, |
+ +--------+-----+ | | camera transformations) |
+ | | | Texture | |
+ | Mesh | | | + |
+ | | ++-----------+-+ | |
+ +-+----------+-+ | | | |
+ | | +---------+-+ +---+--------+ | |
+ +------+-----+ +--+---------+ | | | | | |
+ | | | | | TextureGL | | TextureVK | +---------+---------+
+ | MeshGL | | MeshVK | | | | | |
+ | | | | +-----------+ +------------+ |
+ +------------+ +------------+ |
+ |
+ |
+ +------------+------------+
+ | |
+ | shader/shader prog |
+ | |
+ +--+-----------------+----+
+ | |
+ +---------------+----+ +----+------------+
+ | ShaderProgramGL | | ShaderProgramVK |
+ +--------------------+ +-----------------+
+