Buffer set of widely used textures through a UBO
misc textures (ramp textures/white pixel/black pixel etc.) used for ligthing model etc. could be really useful to have available through a uniform buffer - OK_Maps
instead of per mesh/shader-pair, allowing shaders that require said textures to pull them from the buffer when needed instead of requireing them through a material.
Binding textures for the draw calls for these shaders might yet be problematic however... It might be worth looking into using the ShaderIntrospector to "attatch" textures to shaders after constructing them, meaning the shader will know which textures it needs to bind before it pulls them from the buffer when running. i.e.
Shader Parsing -> Shader Compilation -> Shader Introspection (find active Uniform Blocks, and whether or not OK_Maps
is used) -> If OK_Maps
is used, Shader Introspection (find active samplers within the block) -> Attach Texture to shader (i.e. add the texture ref to a vector of attached textures within the shaderprogram object).
Now, when binding the shader, also bind all textures within the attached textures-vector, making the drawcall happen after the textures needed in the shader is accessible for sampling.