Последовательность ES OpenGL, подобная этой, может использоваться для визуализации нескольких объектов за один проход:
glVertexPointer(...params..., vertex_Array );
glTexCoordPointer(...params..., texture_Coordinates_Array );
glBindTexture(...params..., one_single_texture_ID );
glDrawArrays( GL_TRIANGLES, number_Triangles );
Здесь массив вершин и массив координат текстуры могут ссылаться на неисчислимые примитивы, которые могут быть описаны за один шагв OpenGL.
Но все ли координаты текстуры всех этих примитивов должны ссылаться на единственную текстуру в команде glBindTexture?
Было бы неплохо передать массив идентификаторов текстуры:
glBindTexture(...params..., texture_identifier_array[] );
Здесь в массиве будет идентификатор текстуры для каждой примитивной фигуры, описанной в предыдущих вызовах.Таким образом, координаты текстуры каждой фигуры будут относиться к текстуре, определенной в "texture_identifier_array []".
Я вижу один вариант - поместить все интересующие текстуры в одну большую текстуру, на которую можно ссылаться как на одну сущность врозыгрыш звонков.На моей платформе это создает промежуточный шаг с большой битовой картой, которая может вызвать проблемы с памятью.
Было бы лучше, если бы я мог передавать массив идентификаторов текстуры в вызовы рисования OpenGL ES.Можно ли это сделать?