5

だから私は三角形を持っています:

そして、私は頂点シェーダーを持っています:

uniform mat4 uViewProjection;
attribute vec3 aVertexPosition;
attribute vec2 aTextureCoords;
varying vec2 vTextureCoords;

void main(void) {
  vTextureCoords = aTextureCoords;
  gl_Position = uViewProjection * vec4(aVertexPosition, 1.0);
}

そして、私はフラグメントシェーダーを持っています:

precision mediump float;
uniform sampler2D uMyTexture;
varying vec2 vTextureCoords;

void main(void) {
  gl_FragColor = texture2D(uMyTexture, vTextureCoords);
}

そして、インターリーブされた 3 セットの頂点と UV をフィードします。

# x,  y,    z,   s,   t
0.0,  1.0,  0.0, 0.5, 1.0
-1.0, -1.0, 0.0, 0.0, 0.0 
1.0, -1.0,  0.0, 1.0, 0.0

フラグメント シェーダーは、ピクセル A をピクセル B とは異なる方法で描画することをどのように認識していますか? 何が変わる?

4

1 に答える 1

7

私が理解しているように、GLパイプラインのラスタライズ段階では、三角形の面全体を補間し、補間された値を使用して各ピクセルでフラグメントシェーダーを実行します vTextureCoords

于 2013-01-31T18:57:05.280 に答える