Problème d'affichage, couleurs, faces visibles/cachées

cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012 - 14 avril 2005 à 16:28
cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012 - 16 avril 2005 à 12:14
Bonjour/soir,
Avec le code ci-dessous, j'obtiens une sphère "bizarre", j'ai le même problème avec des cubes, on voit le fond à certains endroits:

//-----------------------------------------------------------------
#include <GL/glut.h>
#include <math.h>
int WindowName;


void InitGL()
{

glEnable(GL_DEPTH_TEST); // Active le test de profondeur
glEnable(GL_LIGHTING); // Active l'éclairage
glEnable(GL_LIGHT0); // Allume la lumière n°1
}



void Reshape(int width, int height)
{
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45,float(width)/float(height),0,100);
glMatrixMode(GL_MODELVIEW); //Optionnel
}


void Draw()
{
gluLookAt(5,5,5,0,0,0,0,1,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //Efface le frame buffer et le Z-buffer
glMatrixMode(GL_MODELVIEW); //Choisit la matrice MODELVIEW
glLoadIdentity(); //Réinitialise la matrice


glTranslated(0,0,-5);
glutSolidSphere(1,30,30);

glutSwapBuffers();
glutPostRedisplay(); //Demande de recalculer la scène
}


int main(int argc, char ** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize (640, 480); //Largeur et hauteur de la fenêtre en pixels
glutInitWindowPosition (100, 100); //Position de la fenêtre au démarrage
WindowName = glutCreateWindow ("SteamSphere"); //Titre de la fenêtre
//glutFullScreen(); //Affichage en plein écran


glutReshapeFunc(Reshape);
glutDisplayFunc(Draw);
InitGL();

glutMainLoop();


return 0;
}
//-----------------------------------------------------------------

Merci,

Tibabou

4 réponses

KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 2
14 avril 2005 à 18:30
Salut, j'ai testé vite fait, c'est la lumiere qui te donne cet effet "bizarre" si tu passes en commentaire les deux lignes du lighting ca marche.

A part faudrai que tu revois un peu les emplacements des appels de tes fonctions
genre le glutPostRedisplay() a la fin du draw c'est moyen, le glMatrixMode(GL_MODELVIEW) appelé dans le reshape suffit pas besoin de le rajouter dans le draw
et vu comme ca le gluLookAt ne sert a rien ici, dans gluPerspective fais des cast pour les float t'es pas en C++, et meme en C++ on cast alors....

Voilou,
@+ KeniiyK
0
cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012
15 avril 2005 à 14:09
J'ai regardé les cours sur glut et openGL de ce site, j'ai recopié bêtement, je ne comprends pas tout.
http://www-evasion.imag.fr/Membres/Antoine.Bouthors/teaching/opengl/opengl4.html
Quoiqu'il en soit: le problème est plus visible sur un cube (pas de lumière, 6 carrés de couleurs différentes,rien de plus):

Le code étant celui du site que j'ai indiqué plus haut. Ce n'est pas le résultat attendu...

Merci.
Tibabou
0
KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 2
15 avril 2005 à 19:06
Ok ben si t'as copié tel quel le source, choppes d'autres codes parce que celui là il est pas au top !!!!!!!!!!! (cherches sur CPPFrance il y en a des mieux et plutôt bien commenté/expliqué....).

Sinon bon courage !

KeniiyK
0
cs_Tibabou Messages postés 129 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 7 juillet 2012
16 avril 2005 à 12:14
Ouais enfin prendre d'autres codes...pourquoi pas, c'est ce que je vais faire mais bon, j'aimerais comprendre pourquoi ce code ne marche pas, en tout cas, pas chez moi.
Qu'est-ce que ça donne chez vous ?

Merci
0
Rejoignez-nous