向量的单独分量可以用两种方式访问:
.” 运算符。数组下标。根据组成向量的分量数量,每个分量可以通过下面三种组合访问
{x,y,z,w}(x,y,z,w),你可以分别使用.x、.y、.z和.w来获取它们的第1、2、3、4个分量。{r,g,b,a}(r,g,b,a),你可以分别使用.r、.g、.b和.a来获取它们的第1、2、3、4个分量。{s,t,p,q}(s,t,p,q),你可以分别使用.s、.t、.p和.q来获取它们的第1、2、3、4个分量。三种不同命名方案的原因是向量可以互换地用于表示数学上的向量、颜色和纹理坐标。
x/r/s分量总是引用向量的第1个分量。y/g/t分量总是引用向量的第2个分量。z/b/p分量总是引用向量的第3个分量。w/a/q分量总是引用向量的第4个分量。但是,不能在访问向量时混合使用命名约定(换言之,不能才有.xgr这样的引用方法,因为一次只能使用一种命名约定)
使用"." 运算符时,可以在操作中重新排列向量的分量。
下面是一个例子。
vec3 myVec3 = vec3(0.0,1.0,2.0); // myVec3 = {0.0,1.0,2.0}
vec3 temp;
temp = myVec3.xyz; // temp = {0.0,1.0,2.0}
temp = myVec3.xxx; // temp = {0.0,0.0,0.0}
temp = myVec3.zyx; // temp = {2.0,1.0,0.0}

除了使用"." 运算符时,使用数组下标"[]"运算符访问。
在数组下标中,元素[0]对应于x,元素[1]对应于y,等等。
矩阵被看成由一些向量组成。例如,mat2可以看做两个vec2,mat3可以看做3个vec3,等等。
对于矩阵,单独的列可以用数组下标运算符"[]"选择,然后每个向量可以通过向量访问行为来访问。
下面展示一些访问矩阵的例子:
mat4 myMat4 = mat4(1.0); // Initialize diagonal to 1.0 (identity)
vex4 col0 = myMat4[0]; // Get col0 vector out of the matrix
float m1_1 = myMat4[1][1]; // Get element at [1][1] in matrix
float m2_2 = myMat4[2].z; // Get element at [2][2] in matrix
