Also habe ich ein Dreieck bekam:Wie wissen OpenGL-Fragment-Shader, welches Pixel in einer Textur abgetastet werden soll?
Und ich habe einen Vertex-Shader bekam:
uniform mat4 uViewProjection;
attribute vec3 aVertexPosition;
attribute vec2 aTextureCoords;
varying vec2 vTextureCoords;
void main(void) {
vTextureCoords = aTextureCoords;
gl_Position = uViewProjection * vec4(aVertexPosition, 1.0);
}
Und ich habe ein Fragment-Shader bekam:
precision mediump float;
uniform sampler2D uMyTexture;
varying vec2 vTextureCoords;
void main(void) {
gl_FragColor = texture2D(uMyTexture, vTextureCoords);
}
Und ich füttere drei Sätze von Vertices und UVs, verschachtelt:
# 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
Wie kann der Fragment-Shader Pixel A anders als Pixel B zeichnen? Was ändert sich?
Sie fütterte eine Textur richtig? Warum erwartest du, dass sie gleich sind oder fragst du, wie Shadern an der GPU arbeiten? –
@JesusRamos Ich frage, wie Shader funktionieren. Ich verstehe nicht, was sich ändert und wer es zwischen den Shader-Pässen ändert. –
Überprüfen Sie die Antwort von @ genpfault. Ich wollte dasselbe sagen, aber er hat mich dazu geschlagen :) –