Я довольно новичок в OpenGL и просто хочу несколько быстрых советов. Я хочу нарисовать плиточный фон для игры. Я предполагаю, что это означает рисовать целую кучу спрайт-подобных объектов на экране. У меня около 48 столбцов в 30 строк, поэтому 1440 плиток (плитки меняются в зависимости от игры, поэтому я не могу предварительно визуализировать всю сетку).
В настоящее время при запуске я создаю 6 различных FBO (используя класс ofFbo из OpenFrameworks), которые действуют как 6 различных плиток. Затем я рисую эти буферы максимум до 1400 раз, выбирая по одному для каждой плитки. Таким образом, есть только 6 FBOS, которые просто рисуют много раз. (Буферы создаются при запуске и никогда не изменяются после создания).
for (int x=0; x<columns; x++) {
for (int y=0; y<rows; y++) {
// Get tile type and rotation from tile struct.
tileNum = tile.form
rotNum = tile.rot
// Draw image/texture/fbo that's stored in a std vector.
tileSet->draw(x*TILESIZE, y*TILESIZE, TILESIZE, TILESIZE);
}
}
Я думаю, что я иду по этому пути неправильно, и мне было интересно, если кто-нибудь новый лучший / оптимальный способ сделать это. Подумайте, что-то вроде старой 8-битной видеоигры. Вот изображение моей работы в процессе.
Структуры на заднем плане - это спрайты, о которых я говорю, разные части - это внутренний угол, внешний (вогнутый) угол, квадратная заливка и прямой край. Извините, что возиться с вопросом.