glDrawElements и несколько изображений - PullRequest
1 голос
/ 26 октября 2009

Известно, что glDrawElements намного быстрее, чем glDrawArrays.

Итак, я хочу отобразить все, используя glDrawElements. У меня проблема в том, что у меня есть куча изображений, которые я хочу выложить на экран. Каждое изображение имеет разную текстуру.

Возможно ли использовать glDrawElements для этого?

Как мне переключить текстуру

Ответы [ 2 ]

0 голосов
/ 26 октября 2009

Индексирование вершин (то есть, glDrawElements) может значительно уменьшить размер буфера вершин, если у вас часто есть вершины, которые совместно используются несколькими примитивами.

Например, если вы рисуете сетку с GL_TRIANGLES, вам определенно нужно использовать индексирование. Если вы просто рисуете группу непересекающихся треугольников, нет особой причины использовать индексацию.

Независимо от того, используете ли вы glDrawElements или glDrawArrays, всегда желательно минимизировать количество вызовов отрисовки. Использование текстурного атласа позволяет комбинировать несколько вызовов отрисовки, которые в противном случае были бы разделены вызовами на glBindTexture.

0 голосов
/ 26 октября 2009

Вы не можете напрямую.

Что вы можете сделать, это сделать текстурный атлас , сделав одну большую текстуру, содержащую все ваши маленькие текстуры, и затем соответствующим образом скорректировать ваши текстурные координаты.

Кроме того, где вы узнали о сравнении glDrawArrays и glDrawElements? Я никогда не видел убедительного сравнения всех случаев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...