Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:57

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di Mai 06, 2008 12:13 
Offline
DGL Member

Registriert: Mi Okt 10, 2007 14:15
Beiträge: 6
Hi,

ich möchte ein Objekt mit Opengl nicht in seinen lokalen Koordinatensystem drehen sondern stattdessen um die Koordinatenachsen des Kamerkoordinatensystems. Ich krieg es irgendwie nicht hin.

Kann mir bitte jemand sagen wie ich das anstellen kann oder hat vielleicht sogar jemand Code dazu?

Gruss und danke schon mal


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 06, 2008 13:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 15:18
Beiträge: 62
Willst du realisieren, die Kamera zu drehen? Das ist nicht schwer, das kann sogar ich ;)

Normalerweise verschiebst du ja zuerst das Objekt, und drehst es dann. Das hat bei Objekten den gewünschten Effekt. Willst du jetzt aber die Kamera drehen, ist das anders: Du willst ja nicht jedes Objekt um die eigene Achse drehen, sondern die Kamera. Wenn du mal aufstehst und dich in deinem Zimmer drehst, sieht es ja fast so aus, als ob sich die Welt um dich drehen würde. Man kann also sagen, alle Objekte werden um die Kamera gedreht.

Also: Erst drehen wir die Welt falschrum, weil die Welt sich ja nach links dreht, wenn wir eine Rechtsdrehung machen. Dann verschieben wir alle Objekte noch richtig - sie werden gedreht verschoben, d. h. die Bewegungslinie ist jetzt gedreht. Das Ergebnis: Die Kamera dreht sich :D

Zusammenfassung: Erst Kamera falschrum drehen, dann Kamera falschrum verschieben, dann Objekte zeichnen.

Ach so, noch wichtig ist, dass du zwischendrin nie glLoadIdentity aufrufst, weil diese Funktion die Kamera zurücksetzen würde. Nehme lieber glPushMatrix und glPopMatrix.

Grüße,
Yogu


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 06, 2008 14:29 
Offline
DGL Member

Registriert: Mi Okt 10, 2007 14:15
Beiträge: 6
Danke aber das ist es glaube ich nicht, obwohl es vielleicht auch darüber möglich ist. Ich hab mich vielleicht auch etwas verwirrend ausgedrückt. Was ich meine ist, dass das Objekt unabhängig von seiner momentanen Orientierung immer um die Achsen des Sichtsystems rotiert. Ist das verständlicher?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 06, 2008 14:39 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 15:18
Beiträge: 62
Das ist doch auch so ungefähr möglich (falls ich dich jetzt richtig verstanden habe). Statt dass du das Objekt erst bewegst und dann rotierst, kannst du es auch umgekehrt machen - oder sogar zweimal rotieren. Normalerweise dürfte doch die Matrix vor dem Zeichnen immer genau auf die Kamera ausgerichtet sein. Das kannst du dir zu Nutzen machen - indem du es genau von dieser Richtung aus drehst.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 06, 2008 15:12 
Offline
DGL Member

Registriert: Mi Okt 10, 2007 14:15
Beiträge: 6
Ich hab hier glaube ich eine Lösung für mein Problem gefunden http://www.3dsource.de/faq/transformations.htm (Punkt 9.070). Allerdings hab ich immer noch noch nicht ganz verstanden wie ich das mache. Ich muss wohl meine eigenen Matrix Operationen ausführen und nicht mit der integrierten Openglmatrix arbeiten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mai 06, 2008 16:41 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Moment.

Also nehmen wir mal an du hast einen Würfel der auf der Spitze steht.
Jetzt willst du, dass sich der Würfel (sammt restlicher Szene) um die Kamera dreht.

Im Grunde genommen musst du (ohne es jetzt ausprobiert zu haben) einfach die "kamerarotation" zuerst durchführen. Noch bevor du am Anfang etwas "Abstand" von der Szene nimmst (um überhaupt was zu sehn).

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Jun 04, 2008 13:40 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Hallo,

ich habe mal eine Kamera programmiert und hier unter "nützliche Helfer" eingestellt. Mit dieser Kamera kann man beliebig zwischen OpenGL-Achsen und Bildschirmachsen umschalten. Sieh doch da mal rein.

Andree

Edit by Flash: im Wiki unter Kamera


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 4 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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]