I need to handle many objects which share only a few textures. Defining and loading textures one by one manually (as described in another post on SO) does not feel right... even more so since there's no switch (index) {case:...}
statement in WebGL.
So I wanted to pass the texture to use for a vertex as a vertex attribute, and use this number as an index into some "array of textures" in the fragement shader. But the OpenGL wiki on Samplers (not quite the perfect reference for WebGL, but the one I found) says:
A variable of sampler can only be defined in one of two ways. It can be defined as a function parameter or as a uniform variable.
uniform sampler2D texture1;
That to me sounds like I can have no array of samplers. I've read a few pages on texture units, but until now, that remains a mystery to me.
In the SO post cited above, Toji hinted at a solution, but wanted a separate question - voila!
Thanks, nobi
PS: I know the other possibility of using a "texture atlas" - if this is more efficient or less complicated - I'd be happy to hear experiences!