2016-08-21 7 views
0

Я недавно узнал, что с помощью immediate mode при рендеринге большой нет-нет.LWJGL - классы VBO и Sprite

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

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

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

Я googled вокруг, но не нашел ничего, что смог понять.

Спасибо заранее!

+1

Это не место для поиска руководств/учебников. Однако вы должны проверить LWJGL [wiki] (http://wiki.lwjgl.org/wiki/Main_Page) и LWJGL 3 [demos] (https://github.com/LWJGL/lwjgl3-demos). – CConard96

ответ

0

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

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

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

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