Я новичок в OpenGL и графическом программировании. Я читал учебник, который был действительно тщательным и хорошо написанным до сих пор. Однако я ударил точку в коде, который я не совсем понимаю, и я хотел бы понять эти строки до того, как я двигайтесь дальше.
GLuint abuffer;
glGenVertexArrays(1, &abuffer);
glBindVertexArray(abuffer);
GLuint buffer;
glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(points), points, GL_STATIC_DRAW);
В книге объясняется, что первые три строки создают объект вершинного массива, который используется для связывания связанных данных с массивом вершин. Вторая строка находит неиспользуемое имя (я предполагаю, что целочисленный идентификатор без знака хранится в abuffer
), а третья строка создает объект/делает его активным.
В книге объясняется, что 4-7-я строка создает буферный объект для хранения наших данных, а 5-я строка дает нам неиспользуемый идентификатор (аналогично строке 2 для объекта массива вершин?), 6-я строка, создающая буфер, и 7-я строка выделяет достаточную память на CPU и создает указатель на наши данные (точки) для GL_STATIC_DRAW
.
Что означает, что объект активен? Когда вы впоследствии будете использовать abuffer
? Что означает, что массив вершин связывает связанные данные, и когда были связаны данные с этим объектом вершинного массива?
Я запутался в отношении отношений между abuffer
и buffer
. Я смущен тем, что отношение массива вершин к объекту буфера, и в какой момент это отношение формируется. Я не уверен, действительно ли они связаны, но они представлены в учебнике сразу после другого.
Любая помощь будет оценена по достоинству. Спасибо.