layout修飾子

glsl-layout.png

layout修飾子はいろいろな使い方ができます

layout修飾子の基本的な使い方

#version 430 core
layout(location = 0) in vec4 vPosition;
void
main()
{
gl_Position = vPosition;
}

この部分に注目。
layout(location = 0) in vec4 vPosition;

これをすると、
int loc = glGetAttribLocation(mShaderId, "vPosition")

したときに返ってくるlocの値が0になるのです。
つまり、layout修飾子を使うことによってlocの値を明示的に指定することができます。

行列の解釈の仕方を左右するlayout修飾子

行列ストレージにだけしか影響しない。
column_major….デフォルト
row_major….DirectXみたいなかんじがいい人に。

サポートサイト Wikidot.com