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...


Log in to reply