Grafikfehler



  • Hallo zusammen,

    ich gehe gerade ein Tutorial Freeglut Tutorial durch, habe allerdings beim Erstellen von nem Würfel ein Problem.

    Ich bekomme einen seltsamen Grafikfehler angezeigt.

    Hier mal der Code

    #include <iostream>      
    #include <GL/freeglut.h>         //lädt auch glut.h und gl.h
    #include <math.h>
    #include "Wuerfel.h"
    
    GLfloat fSeitenL = 1.0;
    
    void Init()	
    {
    // Hier finden jene Aktionen statt, die zum Programmstart einmalig 
    // durchgeführt werden müssen
    }
    
    void RenderScene(void)
    {
    	glBegin(GL_POLYGON);   //Vorderseite
    	glColor4f(1.0f,0.0f,0.0f,1.0f);	//ROT
    	glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(1.0f,1.0f,0.0f,1.0f); //GELB
    	glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(1.0f,1.0f,1.0f,1.0f); //WEISS
    	glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(1.0f,0.0f,1.0f,1.0f); //MAGENTA
    	glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    	glEnd();
    
    	glBegin(GL_POLYGON);   //Rechte Seite
    	glColor4f(1.0f,1.0f,0.0f,1.0f); //GELB
    	glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(0.0f,1.0f,0.0f,1.0f); //GRUEN
    	glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,1.0f,1.0f,1.0f);	//CYAN
    	glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(1.0f,1.0f,1.0f,1.0f); //WEISS
    	glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    	glEnd();
    
    	glBegin(GL_POLYGON);   //Rueckseite
    	glColor4f(0.0f,1.0f,1.0f,1.0f); //CYAN
    	glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,1.0f,0.0f,1.0f); //GRUEN
    	glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,0.0f,0.0f,1.0f); //SCHWARZ
    	glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,0.0f,1.0f,1.0f); //BLAU
    	glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/2.0f);
    	glEnd();
    
    	glBegin(GL_POLYGON);   //Linke Seite
    	glColor4f(0.0f,0.0f,1.0f,1.0f); //BLAU
    	glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,0.0f,0.0f,1.0f); //SCHWARZ
    	glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(1.0f,0.0f,0.0f,1.0f); //ROT	
    	glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(1.0f,0.0f,1.0f,1.0f); //MAGENTA
    	glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    	glEnd();
    
    	glBegin(GL_POLYGON);   //Deckflaeche
    	glColor4f(1.0f,0.0f,1.0f,1.0f); //MAGENTA
    	glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(1.0f,1.0f,1.0f,1.0f); //WEISS
    	glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(0.0f,1.0f,1.0f,1.0f); //CYAN
    	glVertex3f(+fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,0.0f,1.0f,1.0f); //BLAU
    	glVertex3f(-fSeitenL/2.0f,+fSeitenL/2.0f,-fSeitenL/2.0f);
    	glEnd();
    
    	glBegin(GL_POLYGON);   //Bodenflaeche
    	glColor4f(0.0f,0.0f,0.0f,1.0f); //SCHWARZ
    	glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(0.0f,1.0f,0.0f,1.0f); //GRUEN
    	glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,-fSeitenL/2.0f);
    	glColor4f(1.0f,1.0f,0.0f,1.0f); //GELB
    	glVertex3f(+fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    	glColor4f(1.0f,0.0f,0.0f,1.0f); //ROT
    	glVertex3f(-fSeitenL/2.0f,-fSeitenL/2.0f,+fSeitenL/2.0f);
    	glEnd();
    
    }
    
    void Reshape(int width,int height)
    {
    // Hier finden die Reaktionen auf eine Veränderung der Größe des 
    // Graphikfensters statt
    }
    
    void Animate (int value)    
    {
       // Hier werden Berechnungen durchgeführt, die zu einer Animation der Szene  
       // erforderlich sind. Dieser Prozess läuft im Hintergrund und wird alle 
       // 1000 msec aufgerufen. Der Parameter "value" wird einfach nur um eins 
       // inkrementiert und dem Callback wieder uebergeben. 
       std::cout << "value=" << value << std::endl;
       // RenderScene aufrufen.
       glutPostRedisplay();
       // Timer wieder registrieren - Animate wird so nach 100 msec mit value+=1 aufg.
       glutTimerFunc(100,Animate,++value);          
    }
    
    int main(int argc, char **argv)
    {
       glutInit ( &argc, argv );
       glutInitDisplayMode ( GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH );
       glutInitWindowSize ( 600,600 );
       glutCreateWindow ("Testwuerfel");
       glutDisplayFunc ( RenderScene );
       glutReshapeFunc ( Reshape );
       // TimerCallback registrieren; wird nach 10 msec aufgerufen mit Parameter 0  
       glutTimerFunc(10,Animate,0);
       Init();
       glutMainLoop ();
       return 0;
    }
    

    Sowie hier mal ein Screenshot

    http://skizz.sk.funpic.de/wuerfel.JPG

    vor ca 4 Wochen hatte ich dies auch schonmal probiert, da ging alles wunderbar.

    Gruß skizZ



  • Der Wuerfel wird super gezeigt. Nur leider hast du im Hintergrund nichts gezeichnet. Kannst ja vorher mal noch ein anderes Game starten, vielleicht siehst du von dem danach noch was im Hintergrund... f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)


Log in to reply