我在OpenGL 3.2 +中可以制作的最大统一缓冲区对象数是多少?
我正在使用类似于以下内容的代码生成UBO(并假设size
和data_pointer
包含有效数据)
GLuint uboIndex = 0;
glGenBuffers(1, &uboIndex);
glBindBuffer(GL_UNIFORM_BUFFER, uboIndex);
glBufferData(GL_UNIFORM_BUFFER, size, data_pointer, GL_DYNAMIC_DRAW);
glBindBuffer(GL_UNIFORM_BUFFER, 0);
我可以运行此代码多少次?它仅受图形卡上可用内存的限制吗?
答案 0 :(得分:2)
没有“统一缓冲对象”这样的东西;只有 buffer objects 。缓冲区对象的一个用途是作为统一数据的存储。
OpenGL对您可以创建的缓冲区对象的数量没有明确的限制。您可以创建多少主要取决于OpenGL实现可以分配多少内存。