などgl_FragColor = v1 * v2
、どのように乗算されるのかがよくわかりません。参照には、ベクトル乗算行列の説明が記載されているようです。
ps:v1
との型v2
は bothvec4
です。
質問する
28502 次
1 に答える
55
*
演算子は、のようなベクトルに対してコンポーネントごとvec4
に機能します。
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)
GLSL 言語仕様のセクション5.10 Vector and Matrix Operations には次のように記載されています。
いくつかの例外を除いて、操作はコンポーネント単位です。通常、演算子がベクトルまたは行列を操作する場合、ベクトルまたは行列の各コンポーネントに対してコンポーネントごとに独立して操作します。[...]例外は、行列にベクトルを掛けたもの、ベクトルに行列を掛けたもの、行列に行列を掛けたものです。これらはコンポーネントごとに動作するのではなく、正しい線形代数乗算を実行します。
于 2012-12-16T12:11:55.123 に答える