Описание тега 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()
. Типом элементов массива также может быть структура.
По сравнению с объектами унифицированного буфера, объекты буфера хранилища шейдеров доступны для записи.