我有以下統一緩衝:GLSL佈局std140填充困境
layout(std140) uniform Light
{
vec4 AmbientLight;
vec4 LightIntensity;
vec3 LightPosition;
float LightAttenuation;
};
我有一些問題,緩存中的數據時,並填充我需要添加。我已閱讀http://ptgmedia.pearsoncmg.com/images/9780321552624/downloads/0321552628_AppL.pdf,其中說我必須在vec3的末尾添加一個額外的4個字節用於填充 - 所以我將總共爲「Light」上傳13個字節。然而,當我這樣做時,'LightAttenuation'獲得的是我在'LightPosition'上填充的值,而不是前面的一個字節,所以當我不填充時,我在着色器中得到正確的值。爲什麼是這樣?
「*我已閱讀說明*」誰在乎它說什麼? [OpenGL規範](http://www.opengl.org/registry/)是主要來源;其他一切都是次要的。對於std140佈局的描述並不像人們所說的那樣難以理解。 –