頂点シェーダーは頂点ごとに 1 回 (つまり三角形では 3 回) 実行されるため、(例のように) 3 回しか割り当てられない場合、可変変数はどのようにフラグメントごとに計算されるのでしょうか?
フラグメント シェーダー:
precision mediump float;
varying vec4 v_Color;
void main() {
gl_FragColor = v_Color;
}
頂点シェーダー:
attribute vec4 a_Position;
attribute vec4 a_Color;
varying vec4 v_Color;
void main() {
v_Color = a_Color;
gl_Position = a_Position;
}
したがって、問題は、このシェーダーが v_Color を 3 回 (三角形で) しか割り当てないため、この背後にあるシステムが各フラグメントで変数 v_Color を計算する方法をどのように知っているかということです。