LWJGL — классы VBO и спрайтов

Недавно я узнал, что использование immediate mode при рендеринге — это большое нет-нет.

Итак, я начал искать VBO и VAO, и, если я правильно понимаю, VBO — это объекты/буферы, которые содержат такие данные, как положение, цвет и так далее.

Затем вы помещаете VBO в VAO и визуализируете все в VAO?

Все это очень ново и странно для меня, поэтому мне было интересно, КАК я буду это использовать, например, как будет выглядеть класс Sprite/Texture, и смогу ли я изменить такие вещи, как текстуры, после того, как я начал рендеринг ?

Я гуглил, но не нашел ничего, что смог бы понять.

Заранее спасибо!


person Dennis Björk    schedule 21.08.2016    source источник
comment
Это не то место, где можно искать руководства/учебники. Однако вам следует ознакомиться с вики LWJGL и LWJGL 3 демонстрации.   -  person CConard96    schedule 23.08.2016


Ответы (1)


Несмотря на то, что вопрос сформулирован довольно странно, я думаю, что понял то, что вы хотите (поправьте меня, если я не так)

Вы должны думать о VAO как о списке. В этом списке есть ряд атрибутов, например позиции, координаты текстуры и т. д. (до 16). Каждый атрибут хранится в виде массива (VBO). Этот массив заполняется всеми данными одного атрибута (например, всеми позициями вершин). Функция glVertexAttribPointer описывает свойства одного VBO, такие как размер одной вершины, тип данных и т. д.

С другой стороны, есть Uniform переменных. Эти переменные загружаются перед вызовом отрисовки в слот, указанный в шейдере. Эти переменные остаются постоянными для всей сетки и используются для значений, которые остаются одинаковыми для всех вершин (проекция, вид и т. д.). Эти переменные также могут иметь тип данных Sampler, который представляет текстуру.

Для получения более подробной информации я предлагаю вам ознакомиться с некоторыми примерами/учебниками.

person Dynamitos    schedule 25.08.2016