1 +-------------------+ +-------------------+ +---------------------+
3 | | | | | | +---------------------+ we need a second renderer for the
4 | scene | | object | | static renderer ++ | | objects (1 renderer per scene =>
5 | | | | | || | renderer of | we can load/update the shader
6 | | | | | +----------+ the objects' +----------+ once for all the objects - we
7 +--------+----------+ +--------+----------+ +-----------+---------+ | scene | might have hundreds)
9 | | +---------------------+ +
10 it stores all the resources | | it will need
11 responsible for loading, cleanup | | GL/VK backends
12 storage | +-------------------------------------------------+ all the draw functions!
14 it creates the objects using + + +
15 the assimp nodes info contains: the static renderer stores all |
16 (assigns mesh, material and +--+ * ptr to mesh (geometry) the information about the world |
17 testures to objects) | * ptr to material (contains ptr to texture) +--+ and the static scenes |
19 | * transformation (Mat4) +-------+------+ (shaders, modelling, viewing, |
20 +--------+-----+ | | camera transformations) |
23 | | ++-----------+-+ | |
24 +-+----------+-+ | | | |
25 | | +---------+-+ +---+--------+ | |
26 +------+-----+ +--+---------+ | | | | | |
27 | | | | | TextureGL | | TextureVK | +---------+---------+
28 | MeshGL | | MeshVK | | | | | |
29 | | | | +-----------+ +------------+ |
30 +------------+ +------------+ |
33 +------------+------------+
35 | shader/shader prog |
37 +--+-----------------+----+
39 +---------------+----+ +----+------------+
40 | ShaderProgramGL | | ShaderProgramVK |
41 +--------------------+ +-----------------+