Bonjour à vous tous :-).
Voilà, je m'intérèsse à présent aux ombres, et le shadow mapping me semble le plus simple à mettre en place, seulement voilà, j'ai quelques petits soucis, mais rien de bien méchant, ne vous inquiétez pas .
J'utilise donc un array de texture (GL_TEXTURE_2D_ARRAY) contenant 6 textures.
J'effectue le rendu comme suis :
Je prend ma matrice de projection de lumière (du pur hazard alors si c'est pas une bonne idée, dîtes le moi ).
Projection = perspective(90, 1, 1, 10000);
Je bind ma shadowMap0 ( pui 1 2 3 4 5) a mon FBO (avec glframebuffertexture2Dlayer).
je place ma caméra à l'endroit de la lumière, et pour le point que l'on regarde, en fonction de la shadowMap sélectionné, j'ajoute vec(1, 0 ,0) ou vec(0, 1, 0) etc jusque vec(0, 0, -1). En gros les vecteurs +x +y +z -x -y -z, et enfin, j'utilise le vecteur 0 1 0 pour le vecteur "up"
j'effectue mon rendu en entier dans la depth map, et je passe a la texture suivante le tout 6 fois (6 depthMap).
Ensuite comme tout le monde, pour le rendu "normal", j'applique a mon "in_Vertex" la matrice (bias * projLight * viewLight * modelMatrice) patati patata, je retire 0.0005 a ma coordonnée selon z pour évité le pattern de Moiré et puis voilà.
Seulement voilà, lorsque la caméra de ma lumière est dirigée vers le bas, j'ai un problème, est ce à cause du fait que ma caméra de lumière sois "presque colinéaire" au vecteur up ? Est ce à cause de ma configuration de perspective? Je précise que ma depthMap est correct quand même...
Merci de votre aide et de me donner vos avis sur ma méthode .
Partager