Registriert: Mi Apr 09, 2008 16:28 Beiträge: 52 Wohnort: Münster
Hey
ich such eine Kamera Klasse die wie eine Ego-Shooter Kamera funktioniert. (Also ne ganz kleine Version der normalen Kamera Klasse).
D.h. man soll sich im Kreis um sich selbst drehen können und dann auf einer festgelegten y-Höhe immer in die Sichtrichtung geradeaus bewegen können.
Hat da jemand nen Tipp wo ich sowas finden kann?
Die Artikel zu Kameras hier im Forum beziehen sich soweit ich gesehen hab ja immer auf eine Drehung auf der x,yund z Achse,desshalb frag ich das nochmal hier.
Würde mich wirklich freuen wenn da jemand ne Antwort hätte! LG
_________________ "Sometimes it pays to stay in bed on Monday, rather than spending the rest of
the week debugging Monday's code."
-- Dan Salomon
Du irrst dich.
Wenn ich erst glTranslate und dann glRotate mache, dreht sich das Objekt immer um den Punkt (0|0), egal wie stark man die Matrix verschiebt.
Eigentlich müsste es so gehen, wie oben beschrieben, aber es funktioniert einfach nicht.
Registriert: Mi Jan 31, 2007 18:32 Beiträge: 150
Programmiersprache: Pascal
Also nach einigem nachdenken beharr ich auf dem was ich oben gesagt haben...
Wenn du nähmlich erst drehst dann ist deinen Bewegung immer auf ein und dieselbe Position egal um wie viel du gedreht hast...bei einer funktionierenden Kamera solltes du also zunächst verschieben um dann um den ursprung zu drehen somit also eine drehung entlang der gedrehten Achse..
FrenK, genau das habe ich auch seit dem ersten Mal gedacht. Es müsste eigentlich absolute Koordinaten geben können, an die hin translatiert wird und von dort aus müsste man dann um den Punkt herum drehen können. Das geht aber nicht, denn beim Translatieren verändert sich zwar der Punkt im Koordinatensystem - für glRotate scheint das aber ziemlich egal zu sein.
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Ändere doch da, wo die X-Koordinate berechnet wird, einfach mal das Vorzeichen (also von + nach - und umgekehrt ). Habe den Code da oben nicht getestet, sorry.
Zum einen verstehe ich nicht wo genau ich jetzt das Vorzeichen ändern soll, zum Anderen bringt es nichts, ich hab afaik alle Möglichkeiten in der Richtung durch.
Es muss entweder an der Berechnung, oder an OpenGL liegen, und ich habe im Moment eher das Gefühl, dass es an OpenGL liegt, da das gleiche Beispiel in der OpenGL-Version des NintendoDS mit C++ funktioniert...
Ohne eine Lösung für das Problem komme ich also nicht weiter und, dass man die Kamera bewegen kann ist schon irgendwie wichtig für 'nen 3D-Spiel, oder?
Registriert: Sa Nov 24, 2007 11:59 Beiträge: 116
Programmiersprache: FreePascal
Ist es. aber bei mir bewegt sich die Kamera in deiner Testanwendung auf der X-Achse genau in die falsche Richtung, deswegen dachte ich, dass es daran läge. Die Z-Translation scheint zu stimmen.
Ich blaub' ich hab's jetzt mit deiner Hilfe hingekriegt. Zumindest scheint es erstmal so.
War tatsächlich irgendwo 'nen X-Wert, der noch negativ gemacht werden sollte.
Dass der ganz am Anfang genannte Code damit richtig ist, kann ich so nicht bestätigen.
Vielen Dank
Nichtsdestotrotz kann ich jetzt zwar die Kamera um die Y-Achse problemlos drehen, für die anderen beiden Achsen habe ich nach wie vor keine Ahnung, wie das gehen soll...?
Mitglieder in diesem Forum: 0 Mitglieder und 10 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.