你如何访问glsl mat4的单个元素?

是否可以访问glsl mat4typesmatrix的单个元素? 怎么样?

GLSL参考手册的5.6节说,你可以通过下面的方式使用operator[][]风格的语法访问mat4数组元素:

 mat4 m; m[1] = vec4(2.0); // sets the second column to all 2.0 m[0][0] = 1.0; // sets the upper left element to 1.0 m[2][3] = 2.0; // sets the 4th element of the third column to 2.0 

请记住,OpenGL默认为列主matrix ,这意味着访问格式为mat[col][row] 。 在这个例子中, m[2][3]将第三列(索引2)的第四行(索引3)设置为2.0。 在例子m[1]=vec4(2.0) ,它立即设置整个列(因为m[1]指的是#2列,当仅使用一个索引时,意味着COLUMN.m m[1]第二列vector)。