Я запутался с точкой при создании / создании объекта Vertex Array (VAO) с:
glGenVertexArrays(GLsizei n, GLuint *arrays);
и
glBindVertexArray(GLuint);
Поскольку я все еще могу создать буферный объект, скажем для вершин, и описать этот буферный объект с помощью glVertexAttribPointer
и glEnableVertexAttribArray
без создания VAO.
Мой вопрос: если вам не нужно создавать VAO для описания данных в буферном объекте, почему такие источники, как OpenGL SuperBible 5ed, включают вызов для создания VAO при создании VBO? Используются ли они только для более сложных тем, которые мне еще предстоит открыть, я полностью запутался?
Также я впервые столкнулся с этим вопросом при чтении записи википедии на VBO, и их пример кода не содержит вызовов glGenVertexArrays()
, но они по-прежнему описывают данные с помощью glVertexAttribPointer()
. Вики-записи VBO -
Пример, по которому и по какой причине создаются VAO?