你如何访问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)。