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
AutocogitoGruß, TGGC (Was Gamestar sagt...)