Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1579 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [OpenGL] Problème de tache spéculaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[OpenGL] Problème de tache spéculaire

n°1119459
stan walke​r
Yeahhhhhhhhhhh
Posté le 14-06-2005 à 13:48:06  profilanswer
 

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 :
  1. #include <GL/glut.h>
  2. void affichage()
  3. {
  4. GLfloat position[4]={ 10.0, 10.0, 10.0, 1.0};
  5. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  6. glLoadIdentity();
  7. glLightfv(GL_LIGHT0,GL_POSITION,position);
  8. glTranslatef(4,3,0);
  9. glutSolidSphere(2,30,30);
  10. glutSwapBuffers();
  11. }
  12. int main(int argc,char **argv)
  13. {
  14. GLfloat diffuse[4]={ 0.8,0.8,0.9,1.0};
  15. GLfloat speculaire[4]={ 1.0,1.0,1.0,1.0};
  16. glutInit(&argc,argv);
  17. glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
  18. glutInitWindowPosition(200,200);
  19. glutInitWindowSize(400,400);
  20. glutCreateWindow("Saleté de lumiere" );
  21. glClearColor(0.0,0.0,0.0,0.0);
  22. glColor3f(1.0,1.0,1.0);
  23. glEnable(GL_DEPTH_TEST);
  24. glShadeModel(GL_SMOOTH);
  25. glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER,GL_TRUE);
  26. glEnable(GL_LIGHTING);
  27. glEnable(GL_LIGHT0);
  28. glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuse);
  29. glLightfv(GL_LIGHT0,GL_SPECULAR,speculaire);
  30. glMaterialfv(GL_FRONT_AND_BACK,GL_DIFFUSE,diffuse);
  31. glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,speculaire);
  32. glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,50);
  33. glMatrixMode(GL_PROJECTION);
  34. glLoadIdentity();
  35. glOrtho(-10,10,-10,10,-10,10);
  36. glMatrixMode(GL_MODELVIEW);
  37. glutDisplayFunc(affichage);
  38. glutMainLoop();
  39. return 0;
  40. }


 
 
Si quelqu'un à une idée d'où peut venir ce bug.. merci d'avance
 
Florian.

mood
Publicité
Posté le 14-06-2005 à 13:48:06  profilanswer
 

n°1119696
bjone
Insert booze to continue
Posté le 14-06-2005 à 16:11:45  profilanswer
 

traçe un point de couleur à l'endroit supposé de la source de lumière.

n°1119698
bjone
Insert booze to continue
Posté le 14-06-2005 à 16:12:15  profilanswer
 

et anime la source avec un sin() pour voir si ça réagit ou si c'est invariant...

n°1119779
stan walke​r
Yeahhhhhhhhhhh
Posté le 14-06-2005 à 16:59:48  profilanswer
 

Je suis arrivé à trouver le bug ! En activant le Z-buffer tout marche au poil...
 
Merci bjone.

n°1119796
bjone
Insert booze to continue
Posté le 14-06-2005 à 17:08:48  profilanswer
 

je comprends pas, c'est que les faces cachées sont traçées sur les faces visibles, à ce moment là il te manque aussi le backface culling, car normalement avec le culling ta sphère ne devrait avoir de problèmes de traçage même sans zbuffer.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [OpenGL] Problème de tache spéculaire

 

Sujets relatifs
Problème de Mise en place d'un tableau[MySQL] Problème avec Replace
Probleme .hProbleme encoding ISO-8859-1 et caractère "&"
[access - VB] problème commandeFichier .bat : problème de gestion des variables
problème de partage de BDD sous EasyPHPlivre d'or probleme personne peu m aider ??
probleme d'url rewritingproblème de fichier "fphover"
Plus de sujets relatifs à : [OpenGL] Problème de tache spéculaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR