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

Signaler
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012
-
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012
-
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

Messages postés
326
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
2 novembre 2007
2
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
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

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
Messages postés
326
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
2 novembre 2007
2
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
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

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