How do you access the individual elements of a glsl mat4?

glsl

Solution

The Section 5.6 of the GLSL reference manual says you can access `mat4` array elements using `operator[][]` style syntax in the following way:

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

Remember, OpenGL defaults to column major matrices, which means access is of the format `mat[col][row]`. In the example, `m[2][3]` sets the 4th ROW (index 3) of the 3rd COLUMN (index 2) to 2.0. In the example `m[1]=vec4(2.0)`, it is setting an entire column at once (because `m[1]` refers to column #2, when only ONE index is used it means that COLUMN. `m[1]` refers to the SECOND COLUMN VECTOR).

Problem

Is it possible to access the individual elements of a glsl mat4 type matrix? How?

Original source