Ne Kurze Frage: Wie bekomme aus OpenGL den aktuell gesetzen Blickpunkt heraus? Könnte den zwar auch per Parameter übergeben lassen, ich hätts aber lieber direkt aus OpenGL ausgelesen
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Ich vermute mal du meinst die "Kameraposition".
Diese kannst du nur über die ModelView-Matrix erfahren (s.Wiki : http://wiki.delphigl.com/index.php/Matrix#GL_MODELVIEW).
Um den da Auszulesen müsstest du dir erst die Matrix mit glget übergeben lassen, und ihn dann aus dieser auslesen,
aber wenn du ihn als Parameter übergeben kannst, müsste das (wenn ich mich nicht sehr irre) schneller und einfacher sein.
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
1.Nein, die ist nur für Blickwinkel, Near-und Farclipingplane usw. zuständig, bei OGL wird nie die Kamera verschoben, sondern immer nur die Objekte, und Objektverschiebungen werden mit der Modelview-Matrix durchgeführt [jetzt wo dus sagst, war wirklich ein wenig seltsam formuliert, hab das mal geändert].
2. lies dir mal das hier durch, da mit 'nen paar mathematischen Knifen sollte es möglich sein, da sowohl Kameraposition als auch Kamera-blickwinkel rauszuholen (schätze mal den brauchst du früher oder später auch): http://www.delphigl.com/script/do_show. ... 1&action=2
_________________ Bevor du definierst, was etwas ist, versichere dich seiner Existenz.
1.Nein, die ist nur für Blickwinkel, Near-und Farclipingplane usw. zuständig, bei OGL wird nie die Kamera verschoben, sondern immer nur die Objekte, und Objektverschiebungen werden mit der Modelview-Matrix durchgeführt [jetzt wo dus sagst, war wirklich ein wenig seltsam formuliert, hab das mal geändert].
Objektverschiebung ist doch nicht Blickpunkt ändern wenn ich mich gluPerspective arbeite setzt der doch die Perpektiv-Matrix, zumidnest laut einem Tut im Wiki
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Zeig mal kurz deinen Rendercode. Was machst du mit der GL_PROJECTION matrix? Du Translatest doch da hoffentlich nicht rum oder? Es gibt GL-Funktionen die dann recht seltsame Ergebnisse liefern...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Di Nov 26, 2002 22:12 Beiträge: 259 Wohnort: Dresden
Es macht keinen Unterschied ob du die „Kamera“ drehst oder ob du die Welt um dich herum genau engegengesetzt drehst. Das Resultat ist das selbe. OpenGL kennt auch gar keine Kamera im eigentlichen Sinne.
Wie bereits gesagt wurde findest du die Translationsinformationen in der ganz „rechten“ Spalte deiner Modelviewmatrix.
Die Projektionsmatrix ist nicht dafür gedacht Objekte zu verschieben. Im Prinzip enthält diese lediglich Informationen zur Projektion selbst. D.h. z.B. Ob Objekte kleiner werden, wenn sie weiter vom Betrachter entfernt sind usw.
_________________ Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650
Zeig mal kurz deinen Rendercode. Was machst du mit der GL_PROJECTION matrix? Du Translatest doch da hoffentlich nicht rum oder? Es gibt GL-Funktionen die dann recht seltsame Ergebnisse liefern...
Ich benutze nur glOrhto oder glFrustum in der Projektionsmatrix. mehr nicht.
gluLooktAt dann in der Modellview-Matrix, aber in der Modellviewmatrix steht nicht der Blickpunkt drinne, den ich vorher mit gluLookAt gesetzt habe ?!?!
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Doch der sollte da drinnen stehen. (Eventuell steht da ein abgewandelter wert, wenn du nicht auf 0,0,0 guckst) Trag mal als Blickpunkt den Ursprung ein, und guck dann mal nach was in der Matrix steht.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Doch der sollte da drinnen stehen. (Eventuell steht da ein abgewandelter wert, wenn du nicht auf 0,0,0 guckst) Trag mal als Blickpunkt den Ursprung ein, und guck dann mal nach was in der Matrix steht.
Das bringt mir nix, wenn ich nur auf 0 0 0 gucken kann, Was muss ich den rechnen lassen, damit ich aus den Matrixwerten den Blickpunkt bekommen, wenn ich nicht auf den Nullpunkt schaue?
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Di Nov 26, 2002 22:12 Beiträge: 259 Wohnort: Dresden
Langsam geht mir ein Licht auf. Du meinst nicht die Kameraposition, sondern denn Blickpunkt, d.h. Den Zielpunkt auf den die Kamera blickt. Dieser ist nicht genau definiert, denn es gibt ja unendlich viele. All diese liegen auf einer Blickgeraden. Es ist egal ob du vom Ursprung auf den Punkt (0, 0, 1) oder (0, 0, 2) blickst, denn die Ausrichtung der Kamera ist für beide Punkte identisch. Beide Punkte liegen jedoch auf der Geraden mit dem Richtungsvektor (0, 0, 1) und diesen kannst du aus der Modelviewmatrix extrahieren. Dieser Blickvektor l liegt wenn ich mich nicht täusche in der dritten Zeile deiner Modelviewmatrix. Wenn du exakt den Punkt suchst, den du vorher mit gluLookAt gesetzt hast solltest du uns vielleicht mitteilen, was du genau machen möchtest. Oder du speicherst diesen Punkt einfach zwischen.
_________________ Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650
Langsam geht mir ein Licht auf. Du meinst nicht die Kameraposition, sondern denn Blickpunkt, d.h. Den Zielpunkt auf den die Kamera blickt. Dieser ist nicht genau definiert, denn es gibt ja unendlich viele. All diese liegen auf einer Blickgeraden. Es ist egal ob du vom Ursprung auf den Punkt (0, 0, 1) oder (0, 0, 2) blickst, denn die Ausrichtung der Kamera ist für beide Punkte identisch. Beide Punkte liegen jedoch auf der Geraden mit dem Richtungsvektor (0, 0, 1) und diesen kannst du aus der Modelviewmatrix extrahieren. Dieser Blickvektor l liegt wenn ich mich nicht täusche in der dritten Zeile deiner Modelviewmatrix. Wenn du exakt den Punkt suchst, den du vorher mit gluLookAt gesetzt hast solltest du uns vielleicht mitteilen, was du genau machen möchtest. Oder du speicherst diesen Punkt einfach zwischen.
Doch ich meine die Kameraposition, da wo der Betrachter "sitzt". ICh kenn das aks Blickpunkt, weil Ich von dort ja sozusagen auf die Szene Blicke.
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.