Так что в последнее время я решил создать игру и использовать новые версии OpenGL для ее выполнения (Примечание: игра 2D).OpenGL - VBOs для 2D-рендеринга теоретических проблем с анимацией
До сих пор у меня есть VBO для каждого класса, который доступен для рисования. Я сделал это, чтобы не иметь VBO для 1 экземпляра класса (6 * 3 элемента). Теперь, как вы знаете, до вы визуализируете VBOs, вы связываете текстуру. Теперь проблема в том, что я начал реализовывать анимацию, тогда я понял, что анимация не так возможно так, я не могу отображать VBO, который может содержать 5 черепах с различной текстурой для каждой черепахи (разные текстуры для каждого ключевого кадра анимации).
Итак, чтобы напомнить об этом: * Один VBO содержит несколько черепах. Одна из черепах решает атаковать. Запустите анимацию, переключившись на текстуру атаки. Render. Все черепахи в VBO нападают *
Теперь это вопрос.
- Есть ли способ переключения текстуры внутри шейдеров?
- если выше невозможно, что я могу сделать?
«* Один VBO содержит несколько черепах *« Пришло ли вам в голову, что, возможно, это ваша проблема? 2D игры, вообще говоря, имеют довольно эфемерные данные сетки. Вам придется часто менять данные вершин, поэтому вы должны просто принять это. Это означает, что каждый объект нуждается в собственных данных вершин. –
Так что ты говоришь? Используйте один VBO для одной черепахи? – Gopgop
Сколько у вас объектов буфера совершенно не имеет значения. То, что вам нужно сделать, это остановить, чтобы каждая черепаха использовала те же * данные вершин *, как если бы каждая черепаха была клоном другого. Они могут совместно использовать хранилище для своих данных вершин, но они не могут совместно использовать фактические вершины. –