所以我有一個三角形:OpenGL片段着色器如何知道在紋理中採樣哪個像素?
而且我已經有了一個頂點着色器:
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);
}
然後我輸入三組頂點和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不同?什麼改變?
你餵了一個紋理吧?你爲什麼期望它們是相同的,或者你問GPU着色器的工作方式? –
@JesusRamos我在問着色器是如何工作的。我不明白什麼在改變,誰在改變着色器的通行證。 –
查看@ genpfault的答案。我打算說同樣的事情,但他打敗了我:) –