Списки отображения OpenGL: для рисования 2D спрайтов? - PullRequest
1 голос
/ 10 марта 2011

Является ли хорошей или плохой идеей использовать списки отображения для рисования текстурированных прямоугольников?

Список отображения будет перекомпилирован, только если изменяется текстура, которую использует спрайт.

1 Ответ

0 голосов
/ 11 марта 2011

Для отрисовки одного спрайта, нет реальной проблемы в этом, но нет никаких преимуществ, если вы используете glRotate / glTranslate для позиционирования спрайта. Так написано множество игр.

В моих играх я использую объект буфера вершин с GL_DYNAMIC_DRAW для хранения всех спрайтов, которые разделяют каждый атлас текстуры. Я обновляю позиции вертушек на CPU и отправляю всю партию за один вызов отрисовки. Я могу нарисовать еще много спрайтов, используя этот подход. Я мог бы делать позиции в вершинном шейдере, если бы мне нужно было рисовать еще больше.

Также имейте в виду, что OpenGL ES2 не поддерживает списки отображения, поэтому, если вы подумываете о портировании на устройство ES2, вам придется сделать это заново. (iPhone / iPad поддерживает ES1, но вы не можете смешивать и сопоставлять с ES2, вы можете использовать списки отображения ИЛИ шейдеры, но не оба).

...