Важно понимать, что во времена шейдеров и мегатекстур, все это стало условностями.
Текстура - это просто большущий растр, на котором могут хранится "текстуры" хоть от всех объектов сцены - вопрос в координатах.
glBindTexture() // выбрать текстуру
glActiveTexture(GL_TEXTURE0) //прицепить ее в текстурный модуль
glBindTexture() // выбрать еще текстуру
glActiveTexture(GL_TEXTURE1) //прицепить ее в другой текстурный модуль
В шейдере создаете два семплера.
sampler2D a;
sampler2D b;
В семплеры грузите номера текстурных модулей:
glUniform1i( id_a, 0);
glUniform1i( id_a, 1);