使用 UBO 时,我们将统一块绑定到绑定点。然后我们还将 UBO 绑定到相同的绑定点:类似于:
glUseProgram(ProgramName);
glUniformBlockBinding(ProgramName, uniformLocation, bindingPoint);
glBindBufferBase(GL_UNIFORM_BUFFER, bindingPoint, bufId);
我对此有两个问题:
- 我应该先指定 glUniformBlockBinding 还是 glBindBufferBase 或者顺序无关紧要?
- 如果我的理解是正确的,那么只有在我们用数据更新了 UBO 之后,才必须调用 glBindBufferBase。如果这是正确的,那么这回答了我的第一个问题。