Perspektivproblem
-
gluLookAt ist wirklich eine Wissenschaft für sich.
Ich habe hier z.B. eine Scheibe mit einigen Objekten, die ich von Vorne/Oben anschauen möchte. Also wie ein Betrachter der einige Meter neben der Szenerie schwebt und mit einem Winkel von ca. 45° auf die Scheibe schaut. Aber irgendwie bekomme ich das nicht richtig gebacken.
void display ( void ) { glShadeModel(GL_SMOOTH); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glClearDepth(1.0); // Enables Clearing Of The Depth Buffer glDepthFunc(GL_LESS); // The Type Of Depth Test To Do glEnable(GL_DEPTH_TEST); glLoadIdentity(); gluLookAt(3.0, 5.5, 0.0, 0.704, 0.211, 0.3, 0.0, 1.0, 0.0); glPushMatrix(); glColor3f(0.1f, 0.6f, 0.1f); // Green glTranslatef(0.0f, 0.0f, 0.0f); glRotatef(90, 1.0f, 0.0f, 0.0f); draw_disk (3.8); glPopMatrix(); /* Ein Bäumchen */ glPushMatrix(); glTranslatef(-0.3f, 0.0f, 0.55f); draw_tree(); glPopMatrix(); /* noch ein Bäumchen */ glPushMatrix(); glTranslatef(-0.7f, 0.0f, 1.85f); draw_tree(); glPopMatrix(); glPushMatrix(); glColor3f(1.2f, 0.0f, 0.65f); glTranslatef(2.0f, 2.0f, 0.0f); glutSolidCube(0.2); glPopMatrix(); glFlush(); // Vertausche die Backbuffer und Frontbuffer: das fertig // gezeichnete Bild soll jetzt angezeigt werden glutSwapBuffers(); // Sorge daf�r, dass das Bild im n�chsten Schleifendurchlauf // der glutMainLoop wieder gezeichnet wird glutPostRedisplay(); }
kann mir jemand da einen Tip geben?
Danke vorab...
Gruss Christian
-
Hat sich geklärt.
Naja nicht so ganz, ist halt immer noch eine try and error-Methode. Man muss es solange testen bis man den gewünschten Effekt gefunden hat.
-
Mmh mit gluLookAt hatte ich noch nie Probleme, ich glaube Die Pshs und Pops sind dein Problem.
Wenn du nicht wo anders noch was machst, müssten sich deine Objekte doch wie wild bewegen, da du ja für jedes Objekt die Matrix im Stack hälst und somit das LoadIdentity keinen Sinn macht...