I have a scene with hundreds of cylinders of different sizes and colours, which I create with a python script. Needless to say that they take a lot of memory. I just learnt about object instantiation for this kind of cases (yes, I'm pretty new to Blender of CGI in general).
However, while I can scale them independently, I cannot seem to give each of them a different material (as they need to have there own colour). I find this strange, because, in my understanding, they are the same instance of a mesh, which could well be (in my logic) separated from the materials which are simply applied to them.
Am I missing something here? If instantiated meshes cannot indeed have their own materials applied to, what is the proper way to display hundred (and eventually thousands) of primitives in a scene?