[] 运算符在寻址属性 vec4 时会做什么?


attribute vec4 a_MatrixWeights;
...
foo(float weight);
...

void main()
{
  foo(a_MatrixWeights[0]);
  foo(a_MatrixWeights[1]);
  foo(a_MatrixWeights[2]);
  foo(a_MatrixWeights[3]);
}

这是处理 vec4 (.x, .y, .z, .w) 的各个字段还是以某种方式处理 vec4 和 vec4 数组并做其他事情?

最佳答案

是的,它用于访问单个字段。



数组下标也可用于访问矩阵列:

mat4 m;
vec4 c = m[1]; // access the second column of m

关于opengl - GLSL 2.0 属性问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4140031/

10-11 18:26