2013-07-27 2 views
0

Так что в последнее время я решил создать игру и использовать новые версии OpenGL для ее выполнения (Примечание: игра 2D).OpenGL - VBOs для 2D-рендеринга теоретических проблем с анимацией

До сих пор у меня есть VBO для каждого класса, который доступен для рисования. Я сделал это, чтобы не иметь VBO для 1 экземпляра класса (6 * 3 элемента). Теперь, как вы знаете, до вы визуализируете VBOs, вы связываете текстуру. Теперь проблема в том, что я начал реализовывать анимацию, тогда я понял, что анимация не так возможно так, я не могу отображать VBO, который может содержать 5 черепах с различной текстурой для каждой черепахи (разные текстуры для каждого ключевого кадра анимации).

Итак, чтобы напомнить об этом: * Один VBO содержит несколько черепах. Одна из черепах решает атаковать. Запустите анимацию, переключившись на текстуру атаки. Render. Все черепахи в VBO нападают *

Теперь это вопрос.

  • Есть ли способ переключения текстуры внутри шейдеров?
  • если выше невозможно, что я могу сделать?
+0

«* Один VBO содержит несколько черепах *« Пришло ли вам в голову, что, возможно, это ваша проблема? 2D игры, вообще говоря, имеют довольно эфемерные данные сетки. Вам придется часто менять данные вершин, поэтому вы должны просто принять это. Это означает, что каждый объект нуждается в собственных данных вершин. –

+0

Так что ты говоришь? Используйте один VBO для одной черепахи? – Gopgop

+0

Сколько у вас объектов буфера совершенно не имеет значения. То, что вам нужно сделать, это остановить, чтобы каждая черепаха использовала те же * данные вершин *, как если бы каждая черепаха была клоном другого. Они могут совместно использовать хранилище для своих данных вершин, но они не могут совместно использовать фактические вершины. –

ответ

1

Найден мое собственное решение:

Для каждого объекта, который может иметь анимацию, сделать spritesheet то изменить только COORDS ST вместо подмены текстуры для следующего кадра.

+0

Можете ли вы использовать http://www.opengl.org/wiki/Array_Texture? – Grimmy

+0

Я слышал об этом, но я чувствовал, что спрайты выполняют эту работу так же хорошо, и без ограничения на количество кадров .. (Так что в значительной степени они лучше и легче справляются) – Gopgop

Смежные вопросы