Seite 1 von 1

Proportionen erhalten - OpenGL

Verfasst: So Sep 20, 2009 7:19 pm
von cloidnerux
Mein Problem sieht wie folgt aus:
Ich habe ein OpenGL Fenster mit C# und dem Tao Framework.
Dies Funktioniert auch super, nur wird beim verändern der Größe die Proportionen nicht erhalten, das heißt das Bild wird verzehrt.
Ich habe schon gluPerspective, glViewport, glOrth in allen Variationen ausprobiert, doch jedesmal mit dem selben Ergebnis.
Auch hatte ich versucht aus der Veränderung der größe einen Faktor zu bestimmen und eine entsprechende Skalierung durchzuführen, doch das resultierte in Fehldarstellungen und zu großen Objekten.

Danke für Hilfe.
MfG cloidnerux.

Re: Proportionen erhalten - OpenGL

Verfasst: So Sep 20, 2009 9:14 pm
von Kerli
cloidnerux hat geschrieben:Dies Funktioniert auch super, nur wird beim verändern der Größe die Proportionen nicht erhalten, das heißt das Bild wird verzehrt.
Ich weiß nicht wie du das jetzt genau machst, aber der normale Weg ist zuerst mit glViewport die neue Größe des Fensters zu wählen und dann zb. mit gluPerspective eine perspektivische Projektion zu setzen. Du musst beim setzen der Projektion nur aufpassen, dass du auch den richtigen Matrizenstack auswählst.

Re: Proportionen erhalten - OpenGL

Verfasst: Mo Sep 21, 2009 2:35 pm
von cloidnerux
So sieht meine Resize Routine aus:

Code: Alles auswählen

Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
Gl.glViewport(0, 0, width, height);
Glu.gluPerspective(60.0f, (float)height / (float)width, 1.0f, -1.0f); 
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();

Re: Proportionen erhalten - OpenGL

Verfasst: Mo Sep 21, 2009 2:38 pm
von Kerli
cloidnerux hat geschrieben:So sieht meine Resize Routine aus:
Und wie soll das bitte funktionieren wenn du in den letzten beiden Zeilen die Projektionsmatrix erst wieder auf die Einheitsmatrix setzt?

Re: Proportionen erhalten - OpenGL

Verfasst: Mo Sep 21, 2009 2:58 pm
von cloidnerux
Wenn ich die letzte Zeile auf Modelview umsetzte, erhalte ich einen weißen Bildschirm, es wird nichts gezeichnet.
Ich habe Probehaber alle Transfomartionen herausgenommen, was aber nichts half.

Re: Proportionen erhalten - OpenGL

Verfasst: Mo Sep 21, 2009 3:24 pm
von Kerli
cloidnerux hat geschrieben:Wenn ich die letzte Zeile auf Modelview umsetzte, erhalte ich einen weißen Bildschirm, es wird nichts gezeichnet.
Da fällt mir noch was auf: Die Parameter von gluPerspective sind ungültig. Lies doch einmal in der Dokumentation was dort über 'zNear' bzw. vor allem über 'zFar' steht. Es macht doch irgendwie wenig Sinn für eine Clippingebene einen negativen Abstand zum Betrachter an zu geben...