stan walker Yeahhhhhhhhhhh | Bonjour, j'ai un problème avec la tache spéculaire en mode projection orthogonale : glOrtho à la place du gluPerspective classique. La type de projection ne devrait pas influer dans la gestion de la lumiere, et pourtant ... J'ai mis le code minimum (juste l'affiche d'un sphère) (Vous pouvez voir directement le screenshot ici : http://60gp.ovh.net/~toutla/ss.jpg )
Code :
- #include <GL/glut.h>
- void affichage()
- {
- GLfloat position[4]={ 10.0, 10.0, 10.0, 1.0};
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glLoadIdentity();
- glLightfv(GL_LIGHT0,GL_POSITION,position);
- glTranslatef(4,3,0);
- glutSolidSphere(2,30,30);
- glutSwapBuffers();
- }
- int main(int argc,char **argv)
- {
- GLfloat diffuse[4]={ 0.8,0.8,0.9,1.0};
- GLfloat speculaire[4]={ 1.0,1.0,1.0,1.0};
- glutInit(&argc,argv);
- glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutInitWindowPosition(200,200);
- glutInitWindowSize(400,400);
- glutCreateWindow("Saleté de lumiere" );
- glClearColor(0.0,0.0,0.0,0.0);
- glColor3f(1.0,1.0,1.0);
- glEnable(GL_DEPTH_TEST);
- glShadeModel(GL_SMOOTH);
- glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);
- glEnable(GL_LIGHTING);
- glEnable(GL_LIGHT0);
- glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuse);
- glLightfv(GL_LIGHT0,GL_SPECULAR,speculaire);
- glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,diffuse);
- glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,speculaire);
- glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(-10,10,-10,10,-10,10);
- glMatrixMode(GL_MODELVIEW);
- glutDisplayFunc(affichage);
- glutMainLoop();
- return 0;
- }
|
Si quelqu'un à une idée d'où peut venir ce bug.. merci d'avance
Florian.
|