Я изучаю OpenGL из этого руководства. Мой вопрос касается спецификации в целом, а не конкретной функции или темы. Когда я вижу код, подобный следующему:
glGenBuffers(1, &positionBufferObject);
glBindBuffer(GL_ARRAY_BUFFER, positionBufferObject);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertexPositions), vertexPositions, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
Я запутался в полезности вызова функций связывания до и после установки данных буфера. Мне это кажется излишним, в силу моей неопытности в OpenGL и компьютерной графике в целом.
В man-странице сказано, что:
glBindBuffer позволяет вам создать или использовать именованный буферный объект. Вызов glBindBuffer с установленной целью GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER или GL_PIXEL_UNPACK_BUFFER и буфер установлен на имя нового объекта буфера связывает имя объекта буфера с целью. Когда буферный объект привязан к target, предыдущая привязка для этой цели автоматически разрывается.
В чем именно заключается концепция/полезность «привязки» чего-либо к «цели»?