63

是否可以访问 glsl mat4 类型矩阵的各个元素?如何?

4

1 回答 1

75

GLSL 参考手册的第 5.6 节说您可以通过以下方式mat4使用样式语法访问数组元素:operator[][]

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 默认使用列主矩阵,这意味着访问是格式mat[col][row]。在示例中,m[2][3]将第 3 列(索引 2)的第 4 行(索引 3)设置为 2.0。在示例m[1]=vec4(2.0)中,它一次设置一整列(因为m[1]指的是第 2 列,当仅使用 ONE 索引时,这意味着 COLUMN.m[1]指的是 SECOND COLUMN VECTOR)。

于 2012-11-29T22:11:20.323 回答