Bonjour tout le monde !
J'aurais une petite question sur l'utilisation d'un vertex shader pour déterminer la position "absolue" d'un vertex
normalement , avec ce code, la caméra se trouve normalement au centre de mon référentiel .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 uniform vec3 pCamera=vec3(0,0,0); void main (void) { vec4 pVertex= gl_ModelViewMatrix*gl_Vertex;//relatif à la vue gl_Position =gl_ProjectionMatrix*pVertex; vec4 couleur= length(pVertex.xyz);//test avec coloration gl_FrontColor =vec4(couleur); }
Donc normalement en soustrayant les coordonnées de la caméra, je devrais retomber sur le référentiel (0,0,0)
La position de la caméra modifie encore la couleur des vertices.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 uniform vec3 pCamera=vec3(0,0,0); void main (void) { vec4 pVertex= gl_ModelViewMatrix*gl_Vertex;//relatif à la vue gl_Position =gl_ProjectionMatrix*pVertex; vec4 couleur= length(pVertex.xyz-pCamera);//test avec coloration indépendante de la caméra (enfin c'est ce que je crois) gl_FrontColor =vec4(couleur); }
pCamera est bien mise à jour et avec les bonne valeur.
Dans quel partie du raisonnement je me suis trompé ?
cordialement.
Partager