如gl_FragColor = v1 * v2
,我无法真正得到它是如何相乘的,似乎参考文献给出了向量乘法矩阵的解释。
ps:v1
和v2
的类型都是vec4
。
答案 0 :(得分:36)
*
运算符适用于vec4
等向量的component-wise。
vec4 a = vec4(1.0, 2.0, 3.0, 4.0);
vec4 b = vec4(0.1, 0.2, 0.3, 0.4);
vec4 c = a * b; // vec4(0.1, 0.4, 0.9, 1.6)
{em> 5.10矢量和矩阵操作部分下的GLSL Language Specification说明了:
除少数例外情况外,操作是按组件划分的。通常,当一个 运算符在向量或矩阵上运算,它独立运行 在分量方面,在矢量或矩阵的每个分量上 时尚。 [...]例外是矩阵乘以向量,向量 乘以矩阵,矩阵乘以矩阵。这些没有 按组件运行,而是执行正确的线性运算 代数乘法。