次の均一なバッファがあります。
layout(std140) uniform Light
{
vec4 AmbientLight;
vec4 LightIntensity;
vec3 LightPosition;
float LightAttenuation;
};
データと追加する必要があるパディングをバッファリングするときに、いくつかの問題があります。http://ptgmedia.pearsoncmg.com/images/9780321552624/downloads/0321552628_AppL.pdfを読んだところ、vec3 の最後にパディングのために 4 バイトを追加する必要があると書かれているので、合計 13 バイトをアップロードします。 「ライト」のバイト。ただし、これを行うと、「LightAttenuation」は 1 バイト先ではなく、「LightPosition」にパディングした値を取得するため、パディングしない場合はシェーダーで正しい値が取得されます。どうしてこれなの?