J'ai essayé de mettre des données dans le fragment shader pour colorer 2 triangles à travers les textures, mais la couleur donnée est noire (peut-être par défaut ?), pas verte ou rouge comme prévu.
La source à partir de laquelle j'ai essayé de faire cela est la suivante https://webglfundamentals.org/webgl/lessons/webgl-shaders-and-glsl.html#textures-in-fragment-shaders . J'ai mis tout ce qui s'y trouvait dans ma source et j'ai pensé que si je mettais un pixel vert avec un pixel rouge dans ma texture, alors il devait avoir une couleur différente du noir, mais il était noir.
C'est le fragment shader :
precision mediump float;
uniform sampler2D u_texture;
void main() {
vec2 texcoord = vec2(0.5, 0.5) // get a value from the middle of the texture
gl_FragColor = texture2D(u_texture, texcoord);
}
Là, j'ai créé la texture et j'y ai mis des données.
var tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
var level = 0;
var width = 2;
var height = 1;
var data = new Uint8Array([
255, 0, 0, 255, // a red pixel
0, 255, 0, 255, // a green pixel
]);
gl.texImage2D(gl.TEXTURE_2D, level, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);
J'ai essayé de mettre des données différentes dans la texture avec même d'autres couleurs, mais le résultat était le même.