Registriert: Mo Mai 29, 2006 21:13 Beiträge: 142 Wohnort: Ballenstedt/Sachsen-Anhalt
Hallo Leute,
ich hab nen Drehwurm! Nee, mal im Ernst: Ich versuche gerade eine halbwegs Universelle Library zu schreiben und bin jetzt bei der Camera. Dabei habe ich ein Problem, das ich bisher immer recht unelegant gelöst habe, nun sollte es aber schon richtig sein:
Um welche Achse muss ich zuerst rotieren, damit das CAD-ähnlich aussieht? Oder doch besser alle auf einmal mit ner Matrix(wenn ja, wie genau? Ein bisschen Matrizen mach ich auch immer mal, aber trotz 3maligem Lesen eurer Tuts hab ich das noch nicht wirklich drin )
Wen's interessiert: hier der interessante Teil der Camera:
Ja, ich glaube es sogar vertanden zu haben, aber das Verhalten von OpenGL birngt mich immer wieder durcheinander erst glRotate um die X-Achse ist was anderes als erst um de Y-Achse usw.)
Ja, die ist genial. Aber als ich damit (mit fglLib) angefangen hab hatte ich die nicht wirklich verstanden und wollte deshalb meine eigene, 'einfachere' schreiben. Ich glaube das lass ich besser... Ich werde mich mit der mal eingehend beschäftigen, danke für den Hinweis. Davon werde ich sicherlich einiges bei mir einbauen (hoffentlich gibts keine Copyrightprobleme, aber der Code hier dürfte wohl GPL sein )
Streich dir in Gedanken den vorletzten Satz von meinem Anfangsposting....
Ist aber doch eigentlich logisch. Jede Rotation resultiert in einer Matrix, die mit der aktuellen Matrix multipliziert wird, und da bei Matrixmultiplikation das Kommutativgesetz nicht gilt (A x B <> B x A), ist die Reihenfolge durchaus entscheidend.
Als Beispiel hierfür fällt mit da spontan eine Flak ein. Diese hat doch einen Rotationskranz und eine Neigungseinrichtung. Beide resultieren in der Rotation des Geschützlaufes (Kranz um y, Neigung um (rotiertes) x). Würde man nun zuerst die Neigungseinrichtung auf die Lafette setzen, und auf diese dann den Rotationskranz würde der Lauf nichtmehr den ganzen Himmel anvisieren können(Neigung um x, Kranz um (rotiertes) y).
p.s.: Wem dieses Beispiel zu militant ist, der nehme einen Schaufelbagger.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Registriert: Mo Mai 29, 2006 21:13 Beiträge: 142 Wohnort: Ballenstedt/Sachsen-Anhalt
Tja, das kmische ist ja, eine Flak mache ich auf anhieb richtig. Nur Kameras(die ja auch nichts anderes sind ) klappen irgendwie nicht.
Sidorion hat geschrieben:
p.s.: Wem dieses Beispiel zu militant ist, der nehme einen Schaufelbagger.
Der ist gut!
Ich hab jetzt Andys Kamera bei mit integriert, nur sehe ich nocht nichts. Mal sehen, irgendwo geht mir die IdentityMatrix verloren.
EDIT: ich schreibe einfch zu schnell. Geht alles super, aber mein Viewport war der Kamera-Umstellung zum Opfer gefallen.
Die Vec.. Funktionen sind aus der gl.pas von Tom Nydens http://www.delphi3d.net,[edit] hab ich doch selber geschrieben, sollten aber klar sein. Wenn nicht fragen[/edit]
Ich mach da folgendes: erst ermittle ich aus dem Aug- und Blickpunkt die Blickrichtung, diese wird dann nacheinander um die jeweiligen Achsen gedreht und der Blickpunkt wieder aus Augpunkt und neuer Blickrichtung berechnet.
Dabei wird allerdings der Upvektor nicht verändert. Das ist wichtig fürs gluLookAt (wenn Du den mitdrehst, verhält sich die Kamera wirklich komisch).
p.s.: wenn Du die Kamera um den Blickpunkt drehen willst, musst Du einfach anstelle des neuen Blickpunktes den neuen Augpunkt aus der neuen Blickrichtung berechnen.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
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.