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

Aktuelle Zeit: Mo Jul 14, 2025 04:30

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 30, 2003 00:06 
Offline
DGL Member
Benutzeravatar

Registriert: So Jul 27, 2003 00:18
Beiträge: 22
Wohnort: Wachenroth (bei Erlangen)
Hi,

Um eine an ein Objekt gebundene Kamera zu simulieren will ich die Matrizen der einzelnen Objekte durch die Matrix des Kamera-Objektes vor dem Rendern teilen. Gibt es, da es ja auch glMultMatrixf zur Multiplikation der aktuellen Matrix mit einer anderen Matrix gibt, auch einen Befehl zur Division der aktuellen Matrix durch eine andere Matrix? :huh: Sowas wie "glDivMatrixf" eben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 30, 2003 10:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Sowas wie glDivMatrix gibts natürlich nicht.Allerdings brauchst du das auch nicht, wenn du in Mathe ein wenig aufgepasst hast :
m1/m2 lässt sich nämlich auch durch m1*(1/m2) realisieren.Du liest also zuerst mit glGetDoublev(GL_MODELVIEW_MATRIX) deine aktuelle Modelansichtsmatrix in eine Variable ein, und machst aus dieser Matrix dann mittels ner eigenen Funktion 1/Modelansichtsmatrix.Danach multiplizierst du diese über glMultMatrix mit der Objektmatrix und schon hast du als Ergebnis Objektmatrix/Kameramatrix.
Wenn du das ganz dann noch in eine handliche Funktion, idealerweise mit dem Namen glDivMatrix packst und in deinen Basecode reinbringst, musst du dir um dieses Problem nie wieder Sorgen machen.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 30, 2003 13:43 
Offline
DGL Member
Benutzeravatar

Registriert: So Jul 27, 2003 00:18
Beiträge: 22
Wohnort: Wachenroth (bei Erlangen)
Dass m1/m2=m1*(1/m2) ist mir klar. Aber wie rechne ich denn 1/m2 aus? :unsure: Ich bin erst in der 11. Klasse und da ham wer sowas noch nicht durchgenommen. Wenn 1/m2=m^-1, ist dann nicht 1/m2 die Inverse Matrix von m2? Ich dachte nämlich immer, dass Matrix^-1 die Inverse dieser Matrix ist.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 30, 2003 13:56 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
1/m2 ist gleich der Umkehrung von m2 also der inversen Matrix und entspricht damit in etwa dem Kehrwert bei reelen Zahlen.(1/m2)*m2 ist deshalb auch gleich der Einheitsmatrix.Über google hab ich folgendes zum Invertieren einer Matrix gefunden : <a href='http://www.hixman.de/htdocs/studium/mathe/matrix.html' target='_blank'>http://www.hixman.de/htdocs/studium/mathe/matrix.html</a> (siehe ganz unten), was die Sache recht einfach machen dürfte.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jul 31, 2003 14:33 
Offline
DGL Member
Benutzeravatar

Registriert: So Jul 27, 2003 00:18
Beiträge: 22
Wohnort: Wachenroth (bei Erlangen)
:D Funzt jetzt.
Hab ne Unit zur Matrixinversion gefunden:

http://www.lohninger.com/download_sdlsuite.html


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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.009s | 17 Queries | GZIP : On ]