-
Projection de texture ?
Bonjour.
J'ai récupéré une texture(dans un fbo) de ma scène (enfin d'une partie précise : les ombres) du point de vue de ma caméra.
Je compte ajouté du flou à cette texture pour calculer des ombres plus douce ( je m'occuperai de cette partie d'ici peu, mais cela ne devrait pas trop poser de problème).
Ce qui m'interesse dans un premier temps c'est de projeter cette texture sur ma scène correctement et là je m'embrouille dans mes coordonées lors de mes opération dans mon fragment shader.
Je connias mon unité de texture et ma texture est bien binder. Donc il ne me reste qu'a effectuer un Texture2D ou un Texture2DProj (je ne sais pas trop) avec les bonnes coordonées. Mais quelles sont-elles?
Si j'ai bien comprit, je dispose de
glVertex : Les coordonées de mon vertex par rapport à l'origine
glVertex * glModelviewMatrix : Les coordonées de mon vertex par rapport à mon point de vue ( ma caméra )
et il faut que je transforme ca en coordonées texture entre [0 et 1] ... la je bloque :/
Merci de votre aide.
-
salut
si ta lumière est positionnée au même endroit que ta caméra tu ne risques pas de voir d'ombre !
sinon la coordonnée que tu cherches tu l'obtiens comme ça:
varying vec4 coordW;
vertex shader:
coordW = gl_ModelViewProjectionMatrix * gl_Vertex;
fragment shader:
vec3 coord = coordW/coordW.w;
vec3 texLookup = texture2D(tatexture,coord);
cette division par w peut être faite par texture2DProj:
vec3 texLookup = texture2DProj(tatexture,coordW);
-
J'ai du mal m'exprimer mais ma caméra n'est pas confondu avec ma lumière.
D'un autre côté, cela pourrait être le cas et ne devrait pas gêner le calculs des ombres en théorie, non?