Понимание объектов массива вершин (glGenVertexArrays)

Меня смущает точка создания / создания объекта массива вершин (VAO) с помощью:

glGenVertexArrays(GLsizei n, GLuint *arrays);

и

glBindVertexArray(GLuint);

Поскольку я все еще могу создать буферный объект, скажем, для вершин , и описать этот буферный объект с помощью glVertexAttribPointer и glEnableVertexAttribArray , не создавая VAO.

Мой вопрос в том, не нужно ли вам создавать VAO для описания данных в буферный объект, почему такие источники, как OpenGL SuperBible 5ed, должны включать вызов для создания VAO при создании VBO? Используются ли они только для более сложных тем, которые мне еще предстоит открыть, я полностью запутался?

Также я впервые столкнулся с этим вопросом при чтении статьи в Википедии о VBO, и их пример кода не содержит вызовов glGenVertexArrays () , но они по-прежнему описывают данные с помощью glVertexAttribPointer () . 1178109] Запись Wiki VBO - Пример, где VAO создаются по какой причине?

32
задан zython 3 April 2018 в 22:11
поделиться