Описание тега shader-storage-buffer

Объект буфера хранилища шейдеров (SSBO) - это индексированный объект буфера, доступный начиная с OpenGL 4.3. Его можно использовать для чтения / записи произвольно структурированных данных из шейдеров.

SSBO работают аналогично Uniform Buffer Objects, но могут быть намного больше, как Buffer Textures, но с тем преимуществом, что они определены с произвольной структурой:

struct StructureName {
    vec4 position;
    float length;
    int count;
};

layout(std430, binding=0) buffer BlockName {
   StructureName variableName;
   int indices[]; 
};

Как видно из приведенного выше примера, они позволяют использовать конечный член массива, который расширяется до оставшегося размера связанного буфера. Количество элементов в массиве можно получить черезindices.length(). Типом элементов массива также может быть структура.

По сравнению с объектами унифицированного буфера, объекты буфера хранилища шейдеров доступны для записи.