Концепция функций 'Bind' в OpenGL

Я изучаю 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, предыдущая привязка для этой цели автоматически разрывается.

В чем именно заключается концепция/полезность «привязки» чего-либо к «цели»?

42
задан AlexWei 12 January 2018 в 06:57
поделиться