Bonjour,
Je débute en opengl et je dois manipuler le raytracing dans un code qui n'est pas le mien. J'aimerais appliquer à ma sphere la loi de lambert pour la luminosité. La première étape est de calculer la normale.
Ce que j'ai :
Comment calculer la normale de chaque point?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // Pour chaque pixels : ray r; // permet d'obtenir la coordonée 3D du pixel par lancé de rayon sur la sphère ogl->get_coords( i,j,r );
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void MyGlWindow::get_coords(int i,int j, ray & r) { gluUnProject(i*1.0,j*1.0,0.,(GLdouble*) ModelViewMatrix,(GLdouble*) ProjectionMatrix,(GLint *) Viewport,&r.p.X, &r.p.Y, &r.p.Z); gluUnProject(i*1.0,j*1.0,1.,(GLdouble*) ModelViewMatrix,(GLdouble*) ProjectionMatrix,(GLint *) Viewport, &r.v.X, &r.v.Y, &r.v.Z); r.v=r.p-r.v; r.v.normalize(); }
Partager