В вычислительном шейдере у меня есть структура для частицы:
struct Particle {
float delta;
float start_posx;
float start_posy;
float start_posz;
float restart;
uint max_textures;
float max_lifetime;
};
Теперь я хочу использовать эту структуру в SSBO:
layout (std430, binding = 12) buffer particleBlock {
Particle particles[];
};
Я предполагаю, что мои частицы в ssbo плотно упакованы, потому что все элементы структуры имеют размер 4. Если я установлю выравнивание на 16:
layout (std430, binding = 12) buffer particleBlock {
layout(align = 16) Particle particles[];
};
будут ли частицы [1] со смещением 32? Я не уверен, как это выравнивание работает для массивов, и это, похоже, не работает для меня.