包含大数组整数的OpenGL UBO

时间:2014-12-26 19:14:28

标签: c++ arrays opengl buffer limits

我已经从内存浪费的顶点属性切换到UBO以使用更少的内存。我想创建包含给定模型数据的大缓冲区(包含1024 * 1024以上的值)。接下来对于每个模型,我将离开程序和顶点缓冲区(因为网格是相同的)并且为下一个模型更改UBO。因此,每个UBO将被设置一次,然后只有绑定更改为不同的缓冲区。

问题是我无法创造如此大的数组。像这样的代码没问题:

layout(std140) uniform someDataUniform {
   int someData[1201]; 
};

但是像这样的代码崩溃了:

layout(std140) uniform heightDataUniform {
    int heightData[1201*1201]; 
};

这个问题有解决方法吗?通过索引随机访问创建大型可绑定缓冲区?甚至可能是二维阵列(不是必要的)?

OpenGL 3.3,GLSL 330。

0 个答案:

没有答案