gpt4 book ai didi

opengl - glUniformBlockBinding 和 glBindBufferBase 之间的顺序重要吗?

转载 作者:行者123 更新时间:2023-12-02 01:01:49 27 4
gpt4 key购买 nike

使用 UBO 时,我们将统一 block 绑定(bind)到绑定(bind)点。然后我们还将UBO绑定(bind)到同一个绑定(bind)点:像这样:

glUseProgram(ProgramName);
glUniformBlockBinding(ProgramName, uniformLocation, bindingPoint);
glBindBufferBase(GL_UNIFORM_BUFFER, bindingPoint, bufId);

我对此有两个问题:

  1. 我应该先指定 glUniformBlockBinding 还是 glBindBufferBase 或者顺序无关紧要?
  2. 如果我的理解是正确的,那么只有在我们用数据更新UBO之后才必须调用glBindBufferBase。如果这是正确的,那么这就回答了我的第一个问题。

最佳答案

glUniformBlockBinding 在程序中设置状态(这就是为什么您不应该每帧都调用它)。 glBindBufferRange 在 OpenGL 上下文中设置状态。在渲染之前,两者都不会影响另一个,所以不,哪个并不重要。

是的,除非您为缓冲区对象分配了存储空间,否则您无法调用glBindBufferRange(或 Base,它是根据 Range 定义的)。

关于opengl - glUniformBlockBinding 和 glBindBufferBase 之间的顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17827665/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com