OpenGL 绑定点存在于什么范围内?

问题描述 投票:0回答:1

OpenGL 允许创建统一缓冲区对象。每个 UBO 都存在于某个绑定点(索引)处,着色器可以从中拾取它(将绑定点与块索引相关联)。但我想知道,这个指数在什么范围内重要?每个渲染通道是否都有自己的一组绑定点索引?或者整个应用程序是否有一个全局绑定点列表,由所有 UBO 共享?

如果有的话,为什么没有像纹理和 vbo id 那样的 glGenBindingPoint ?

删除UBO后如何动态分配绑定点?我是只选择下一个可用的绑定点索引还是不重复使用索引?

opengl
1个回答
0
投票

OpenGL 没有“渲染通道”的概念。只有绘图调用。

UBO 绑定索引与所有其他绑定一样,表明它是 OpenGL 上下文的一部分。这就是他们的“范围”。它们基本上是对缓冲区对象的引用的上下文全局数组。您不“分配”全局数组;他们永远在那里

绑定到特定索引的缓冲区对象将保持绑定到该索引,直到另一个缓冲区绑定到该索引(或绑定 0)或删除缓冲区时。

© www.soinside.com 2019 - 2024. All rights reserved.