Hello team!
Since the very first version of Babylon.js materials are working in a pull mode. This means that every time a mesh needs to be rendered, its material has to ask the engine about a lot of information in order to compile the best shader possible for the given mesh.
For instance, here is an incomplete list of states required to compile a shader:
- Lights affecting the mesh (taking in account inclusion and exclusion lists and masks)
- Textures and channels (including