I have been working on loading various 3D models to test something I am making. For me models can have multiple objects and each object can have one material assigned to them. They are loaded to a VBO/IBO combo and are rendered with glDrawElements().
My system has been working quite good so far but while I was loading .3ds models I noticed that one object can have multiple materials assigned to it. For each material of an object a number of faces and indices to these faces are given inside the .3ds file.
I realized that there is no way to pass these values into a shader, unless you turn the material values into attributes and actually send them in along with the VBO/IBO combo. But I would guess that this is a colossal waste of space.
So my question is, what do people do in these cases normally? Do they subdivide somehow the object into as many objects as the number of materials? Is this the only feasible way? Would it be bad practice to reject these models? How common are they? So far I have only found one but I have to admit I did not do much searching.