Bonjour,
Je tente de faire du deferred lighting. J'ai donc fais des textures qui contiennent les différentes composantes necessaires au deferred lighting: diffuse, depth, normal, etc.
A partir de ces textures, j'aimerais retrouver la position original du pixel en x.y.
J'ai trouvé ceci sur internet:
Ref.: http://www.mti.epita.fr/blogs/2008/0...red-rendering/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //récupération de la profondeur de la position original float z = tex2D(depthSampler,input.TexCoord).r; //calcule de la position original float4 position; //il faut convertir la position de texture qui est entre 0 et 1 à des coordonnées entre -1 et 1 position.x = input.TexCoord.x * 2.0f - 1.0f; position.y = -(input.TexCoord.y * 2.0f - 1.0f); position.z = z; position.w = 1.0f; //on transforme avec la matrice inverse de la viewProj. position = mul(position, InvertViewProjection); position = position.w;
Je ne comprends pas les 2 dernières lignes:
1) Qu'est ce que c'est l'"InvertViewProjection" ? Matrice inverse de projection ? matrice inverse de model view ? les 2 combinés ?
2) Que fait la ligne "position = position.w" ?
Merci d'avance.
Partager