Je voudrai recuperer la shadow map de ma scene, je recherche sur internet depuis un petit bout de temps un algo clair et simple mais je trouve pas alors si qq peut me donner des liens ou un bout de code merci
Je voudrai recuperer la shadow map de ma scene, je recherche sur internet depuis un petit bout de temps un algo clair et simple mais je trouve pas alors si qq peut me donner des liens ou un bout de code merci
http://www.paulsprojects.net/opengl/shadowmap/shadowmap.html
Cette methode ne marche pas dans mon cas je voudrai faire plutot la depth map de ma scene pour ensuite afficher l'ombre avec un shader
J'ai l'impression que c'est ce qu'il fait dans son tutorial : il calcule la depth map de la scene selon le point de vue de la lumiere qu'il affiche dans une texture.
Sinon (desolé de derouter ce topic), j'ai une question que je me pose depuis un moment sur les shadows map. C'est bien gentil de faire des demos avec une lumiere proche de l'objet, mais pour une vraie scene la lumiere pourait etre tres eloigné de l'object (le soleil par exemple).
Du point de vu de la lumiere, l'objet ne serai alors qu'un pauvre pixel, ce qui ferai un peu tache niveau ombre.
J'ai pensé a "deplacé" le soleil, hisroire qu'il ne soit jamais tres loin de la camera, mais ce deplacement se verai sur les autres objets de la scene.
J'ai repris un code de ce site http://www-evasion.imag.fr/Membres/F...s/exemple.html
Mais ca ne marche pas si qq peut me dire si il voit ou ca pose probleme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 glGenTextures(1, &shmap); glBindTexture(GL_TEXTURE_2D, shmap); glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 256, 256, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, NULL); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); gluLookAt( lightPos[0], lightPos[1], lightPos[2], 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f); glPixelStorei(GL_UNPACK_ALIGNMENT,1); glReadPixels(0,0,256,256,GL_DEPTH_COMPONENT,GL_BYTE,image);/*attention: width et heght doivent être des puissances de 2*/ glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, 258, 258, 0, GL_ALPHA, GL_BYTE, image);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager