我可以使用 glGenBuffers 函数生成多少个缓冲区?
我可以尝试生成 8192 个(或更多)缓冲区吗?

我只渲染一个缓冲区,但我需要存储许多缓冲区。

int i = 0;
glGetIntegerv(GL_MAX_DRAW_BUFFERS, &i);

返回 8 。这是缓冲区的最大计数,即在同一时间渲染。

我对吗?

最佳答案

GL_MAX_DRAW_BUFFERS 值与 glGenBuffers 无关,但与片段着色器可以写入的缓冲区有关(请参阅 glDrawBuffers )。

标准中的缓冲区数量没有限制,您可以创建任意数量的缓冲区。然而,您受到内存的限制,因此如果您计划存储大量数据,像 glBufferData 这样的调用可能会因 GL_OUT_OF_MEMORY 而失败

关于c++ - 最大缓冲区数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10512399/

10-14 17:32