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

Aktuelle Zeit: Fr Jul 18, 2025 03:51

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



Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Entfernung 2er Vektoren
BeitragVerfasst: Mi Jul 07, 2010 09:10 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
hatte ich schon probiert mit dem minus.. reagiert trotzdem nicht auf rotation..Hatte das minus erstmal weggelassen, dann müsste ich ja theoretisch die Position exakt gegenüberliegend sehen..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Entfernung 2er Vektoren
BeitragVerfasst: Mi Jul 07, 2010 10:08 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
wenn ich die theorie einer Matrix verstanden habe, ist das auch richtig, das er bei den letzten 3 bzw 4 werten nur die Transformation anzeigt, denn dann ist das bestimmt der Mittelpunkt des Koordinatensystems.. welcher ja durch die Rotation nicht geändert wird..
Wie also bekomme ich nun meine korrekte Kamera Position?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Entfernung 2er Vektoren
BeitragVerfasst: Mi Jul 07, 2010 10:10 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Öh.. einfach die translations werte der Matrix nehmen reicht ja auch nicht. Du mußt deinen Punkt an dem die Kamera ihren ausgangspunkt hat mit der matrix multiplizieren.

Also in der Regel den Punkt (0, 0, 0) mit der Matrix multiplizieren, der punkt der da dann rauskommt ist deine aktuelle kamera position. (Bzw. du mußt glaub ich die Matrix erst noch invertieren, da bin ich mir grad nicht sicher, kommt auch ein bisschen drauf an wie du die daten speicherst etc.)

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Entfernung 2er Vektoren
BeitragVerfasst: Mi Jul 07, 2010 10:13 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Sorry, Denkfehler:
Code:
cam_[0] := -matrix[12]*matrix[ 0] - matrix[13]*matrix[ 1] - matrix[14]*matrix[ 2];
cam_[1] := -matrix[12]*matrix[ 4] - matrix[13]*matrix[ 5] - matrix[14]*matrix[ 6];
cam_[2] := -matrix[12]*matrix[ 8] - matrix[13]*matrix[ 9] - matrix[14]*matrix[10];


Funktioniert nur solange du bei glTranslate und glRotate bleibst. Die mit glGetFloat ausgelesene Matrix muss orthonormal sein, das bedeutet das z.B. glScale ist hier für die Kamera nicht erlaubt. Für Objekte die du später renderst gibt es aber keine Einschränkung, es geht hier nur um die Kamera.

Wenn die Matrix nicht orthonormal ist wird die Berechnung komplizierter. Falls du das aber brauchst, schau dir Matrix44<T>::inverse() von CoolMath an. Du musst den Punkt (0,0,0,1) mit der inversen Matrix transformieren.

@Aya: Ja, invertieren hatte ich vergessen. Aber den Punkt (0,0,0) nehmen entspricht einfach dem Translationsteil ;)

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Entfernung 2er Vektoren
BeitragVerfasst: Mi Jul 07, 2010 10:52 
Offline
DGL Member

Registriert: Do Apr 22, 2010 17:17
Beiträge: 543
perfekt so funktionierts. Mercie


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder 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 | 14 Queries | GZIP : On ]