Verständnisproblem mit glTranslatef
-
Hallo zusammen ich habe ein kleines Verständigungsproblem mit glTranslatef.
Und zwar habe ich folgenden Code:#include <GL/gl.h> #include <GL/glut.h> void display(void) { /* clear all pixels */ glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* draw white polygon (rectangle) with corners at * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) */ glLoadIdentity(); glTranslatef(-0.0f,0.0f,1.0f); glBegin( GL_TRIANGLES ); glColor3f(1.0,0.0,0.0); glVertex3f( -0.5f, 0.0f, 0.0f); glVertex3f( 0.5f, 0.0f, 0.0f); glVertex3f( 0.0f, 0.5f, 0.0f); glEnd(); /* don't wait! * start processing buffered OpenGL routines */ glFlush (); } void init (void) { /* select clearing (background) color */ glClearColor (0.0f, 0.0f, 0.0f, 0.0f); /* initialize viewing values */ glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); } int main (int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowSize (500, 500); glutInitWindowPosition (100, 100); glutCreateWindow ("hello"); init (); glutDisplayFunc(display); glutMainLoop(); return 0; /* ISO C requires main to return int. */ }Und das fumktioniert auch wunderbar, zeichnet mir ein grosses rotes Dreieck auf rotem Grund. Nur wenn ich in die Funktion glTranslatef auf der Z-Achse einen Wert höher als 1 eingebe, sehe ich gar nichts mehr. Dabei ist es egal ob der Wert negativ oder positiv ist (-1.1f 1.1f) das Fenster ist komplett schwarz!
Im nehe.gamedev-Tutorial ist im Beispiel 2 jedoch ein Beispiel auch mit zwei einfachen 2-dimensionalen Formen und da wird vom dem Zeichen der ersten Figur eine Translation durchgeführtglTranslatef(-1.5f,0.0f,-6.0f); // Move Left 1.5 Units And Into The Screen 6.0und dort funktioniert es. Wo ist der Unterschied zu meiner Lösung? Ich find's einfach nicht.
Danke vorab...
Gruss Christian
-
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);du initialisierst eine 2D projektionsmatrix mit dem z near clipping plane -1.0
und z far clipping plane 1.0. demnach wird auch nüx gerendered (zomg dieses deutsch :P) was nicht innerhalb dieser 2 planes liegt
edit:
google mal nach glFrustum oder gluPerspective. dies sollte dir weiterhelfen