Registriert: Do Jun 22, 2006 19:13 Beiträge: 52 Wohnort: Lübeck
Hallo zusammen,
ich habe ein Problem beim Umschalten von einer Projektion auf die andere. Also z.B: von glPerspective nach glOrtho.
Wenn ich meine Applikation starte, befinde ich mich im glPerspective Modus. Ich sehe z.B. in der mitte des Bildschirms einen Würfel. Nun bewege ich die Camera ganz nah an den Würfel heran.
Wenn ich nun auf glOrtho umschalte, dann ist der Würfel immer noch ganz weit weg. Der Grund ist mir klar. Im Ortho-Modus kann ich die Camera hin und her bewegen (hinein- und hinauszoomen) ohne das sich die größe des Würfels auf dem Bildschirm verändert.
Ich muss also die größe der Sichtfläche verändern. Aber wie weis ich wie groß dieses Sichtfenster zu sein hat wenn ich mich z.B 100 in glPerspective vom Objekt weg bewegt habe?
Wenn ich nun in AENDERUNG einen entsprechenden Wert für die Veränderung von 100 in der glPerspective Ansicht hätte, dann müsste das doch funktionieren.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Im Orthomodus musst du dann auf glScale setzen. Allerdings kann ich dir nicht direkt sagen, wie du auf den passenden Faktor kommst.
Viel Erfolg
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Naja, es gilt der Strahlensatz. Wenn du von einer Entferung weißt, wie groß der Skalierungsfaktor sein muss, dann nimm diesen und lass ihn proportional mit der Entfernung steigen.
Registriert: Do Jun 22, 2006 19:13 Beiträge: 52 Wohnort: Lübeck
Also,
wenn ich das richtig verstanden habe, muss ich nun herausfinden um welchen Faktor sich das Bild optisch vergrößert hat, wenn ich mich 100 Einheiten auf das Objekt im Perspective Modus zu bewegt habe.
Diesen Faktor kann ich dann dazu verwenden um mit der aktuellen Camera entfernung und glScale im Ortho Modus die Viewmatrix so zu manipulieren, das beim Umschalten das Object optisch imer die gleiche Entfernung hat.
im ergebnis siehts dann so aus: perspektivisch: orthologisch:
vielleicht bringt dich das ja auf ne idee... *Edit* achso was ich vielleicht noch dazusagen muß: ich rendere in ein quadratisches panel, wenn ich das panel rechteckig mache verzerrt mir orthologisch die geometrie... also ist das "2*(ATZ) wohl irgendwie abhängig vom Seitenverhältnis des Panels... aber ich wills ja eh quadratisch.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.