Salut, j'aimerais retourner une texture dans un fragment shader cependant j'ai un petit problème.
Dans un 1er tant je passer les coordonnées de textures aux vertex shader que je multiplie par la matrice de texture pour avoir les coordonnées de texture max en x et en y comme ceci :
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 texCoords = gl_TextureMatrix[0] * vec4(float(intRect.x + intRect.z), float(intRect.y + intRect.w), 1, 1);
intRect est le subRect de la texture SFML.
texCoords est la variable de sortie que je passe au fragment shader, ainsi je n'ai plus qu'à faire maxY - gl_TextCoords[0].y dans le fragment shader.
Mais je n'ai pas le résultat attendu, texCoords.x et texCoords.y valent toujours 0 et je ne comprend pas pourquoi.
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 vec4 pixel = texture2D(texture, vec2(gl_TexCoord[0].x, texCoords.y - gl_TexCoord[0].y)); gl_FragColor = vec4(texCoords.x, texCoords.y, 0, 1);
Vu que les pixels sont toujours noir..., si le subrect englobe toute la texture alors il suffit juste de faire 1 - gl_TexCoord[0].y et ça marche (la texture est retournée en y) mais dans le cas ou le subrect n'englobe pas toute la texture je ne vois pas très bien comment faire.
Merci d'avance pour votre aide.
Partager