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.
Proportionen erhalten - OpenGL
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Proportionen erhalten - OpenGL
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Proportionen erhalten - OpenGL
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.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.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Proportionen erhalten - OpenGL
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();
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Proportionen erhalten - OpenGL
Und wie soll das bitte funktionieren wenn du in den letzten beiden Zeilen die Projektionsmatrix erst wieder auf die Einheitsmatrix setzt?cloidnerux hat geschrieben:So sieht meine Resize Routine aus:
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Proportionen erhalten - OpenGL
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.
Ich habe Probehaber alle Transfomartionen herausgenommen, was aber nichts half.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
Re: Proportionen erhalten - OpenGL
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...cloidnerux hat geschrieben:Wenn ich die letzte Zeile auf Modelview umsetzte, erhalte ich einen weißen Bildschirm, es wird nichts gezeichnet.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at