Bonjour,
Je n'ai pas beaucoup d'expérience avec les shaders. Je pensais avoir un problème assez courant, mais je n'ai rien trouvé qui me sauve la vie en cherchant sur le forum.
Ce qui marche:
J'ai 2 passes:
1/ Je dessine un cube dans une texture, implémenté en FBO
2/ Je dessine un quad texturé par le FBO.
J'ajoute un shader pour tracer le quad de la seconde passe. Dans mon Fragment Shader je faisAlors mon quad est tout rouge. Ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part gl_FragColor=vec4(1.0, 0.0, 0.0, 1.0);
Mon problème:
Je voudrais accéder à mon FBO pour reproduire le comportement par défaut du rendu du quad texturé. Voici le code source de mon Vertex Shader:
Et celui de mon Fragment Shader:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 varying vec2 v_TexCoord; void main() { gl_Position = ftransform(); v_TexCoord = gl_MultiTexCoord0.st; }
Après la creation du shader, je définis la variable uniforme "u_TextureImage" à 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 uniform sampler2D u_TextureImage; varying vec2 v_TexCoord; void main() { gl_FragColor = texture2D(u_TextureImage, v_TexCoord); }
Je prends un GL_INVALID_OPERATION au passage dans le shader. Il y a un truc qui m'échappe, mais je tourne en rond et je n'arrive pas à trouver quoi.
Merci de votre aide...
Partager