Merci dragonjoker59 pour ta réponse !

Envoyé par
dragonjoker59
Il faut pour cela le faire dans le fragment shader, qui est fait pour le travail sur les pixels (le vertex shader étant limité aux vertex).
D'accord mais c'est dans le vertexshader qu'on récupère la position des pixels avec :
gl_Position = gl_ModelViewProjectionMatrix*gl_Vertex;
Seulement, il me faut la position dans la scène et non sur l'écran pour pouvoir effectuer en fonction de la distance par rapport à la position de la caméra dans la scène une atténuation du flash.
(Sachant que la caméra est en 0.0, 0.0, 0.0 et que c'est la scène qui tourne autour. Donc, j'imagine que récupérer la position dans la scène 3D des vertex suffit à avoir la distance qui sépare la caméra du vertex non ?)
Donc j'ai :
pos = vec3(gl_ModelViewMatrix*gl_Vertex);
Mais je ne sais pas comment faire des conditions sur pos ensuite dans mon fragment shader :s
Je ne vois pas vraiment quelles valeurs peut prendre pos dans ma scène...
Partager