Outils pour utilisateurs

Outils du site


Action disabled: diff
opengl

Ceci est une ancienne révision du document !


OPENGL

Matrice de projection sous OpenGL

Les shaders

Pour avoir accès, dans le fragment shader, aux coordonnées du fragment(futur pixel) actuellement en cours de traitement :

 gl_FragCoord.x : Coordonnée du pixel suivant la largeur,
                  exprimée dans l'intervalle [0,nombreDePixelSurLaLargeur]
 gl_FragCoord.y : Coordonnée du pixel suivant la hauteur,
                  exprimée dans l'intervalle [0,nombreDePixelSurLaHauteur]
 gl_FragCoord.z : Valeur utile pour le Z buffer,
                  exprimée dans l'intervalle [0,1]
 gl_FragCoord.w : L'inverse de la "coordonnées homogènes"
 

gl_FragCoord est une built-in variable (https://www.opengl.org/wiki/Built-in_Variable_%28GLSL%29). gl_FragCoord.x et gl_FragCoord.y sont exprimés en pixel de l'image de la caméra. Ces coordonnées sont au centre des pixels. Par exemple gl_FragCoord.x varie de 0.5 à nombreDePixelSurLaLargeur - 0.5.

Pour récupérer les coordonnées de l'image en normalized device coordinates (ndc), exprimée dans l'intervalle [-1,1] :

 x_ndc = gl_FragCoord.x/width * 2 -1.0; // exprimée dans l'intervalle [-1,1]
 y_ndc = gl_FragCoord.y/height * 2 -1.0; // exprimée dans l'intervalle [-1,1]
 z_ndc = gl_FragCoord.z * 2 -1.0; // exprimée dans l'intervalle [-1,1]
 

Pour revenir aux coordonnées dans le repère de la caméra : http://www.txutxi.com/?p=83

opengl.1423819244.txt.gz · Dernière modification : 2015/02/13 10:20 de jcombier