分量名
| 类别 | 描述 |
|---|
| x,y,z,w | 用来获取顶点坐标分量 |
| r,g,b,a | 用来获取颜色分量 |
| s,t,p,q | 用来获取纹理坐标分量 |
- 任意矢量的x,r,s分量都会返回第1个分量,以此类推
vec3 v3 = vec3(1.0,2.0,3.0)
float f;
f = v3.x;
f = v3.y;
f = v3.z;
f = v3.r;
f = v3.s;
f = v3.w;
混合:同一集合的多个分量名共同至于点运算符后,就可以从矢量中同时取出多个变量
vec2 v2;
v2= v3.xy;
v2= v3.yz;
v2= v3.xz;
v2= v3.yx;
v2= v3.xx;
vec3 v3a;
v3a = v3.zyx;
- 聚合分量名也可以用来作为赋值表达式=的的左值,此时多个分量名必须属于
同1个集合,比如,不能用v3.was
vec4 pisition =vec4(1.0,2.0,3.0,4,0)
position.xw = vec2(5.0,6.0)
[]运算符
- 按
列主序读取,下标从0开始,[0]访问矩阵中的第一列元素
- 连续使用2个[]运算符可以访问某列中的某个元素
- 也可使用[]+分量名来访问矩阵中的元素
mat m4= mat4(1.0,2.0,3.0,4.0,
5.0,6.0,7.0,8.0,
9.0,10.0,11.0,12.0,
13.0,14.0,15.0,16.0);
vec4 v4=m4[0]
float m23 = m4[1][2]
float m32 = m4[2].y