Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

1

10.05.2009, 20:19

Warum 4x4-Matrix statt einer 3x3-Matrix?

Ich wollte mal generell fragen, warum man in der Spieleprogrammierung eine 4x4- und keine 3x3-Matrix benutzt.
Bisher hab ich gelesen, dass so bestimmte Transformationen berechnet werden können, allerdings hat diese Antwort nicht das Maß an Detail, das ich gerne hätte. :lol:

Mit freundlichen Grüßen,
WhiteMike

ph4nt0m

Frischling

Beiträge: 81

Beruf: Student

  • Private Nachricht senden

2

10.05.2009, 20:23

Ein Grund (und möglicherweise der wichtigste) ist, dass man mit einer 4x4 Matrix auch Translationen, also einfache Verschiebungen beschreiben kann. Das geht mit einer 3x3 Matrix (bei dreidimensionalen Koordianten) nicht. Und da man in der 3D-Programmierung ziemlich großen Gebrauch des Assoziativgesetzes macht, ist es eben wichtig, Translationen (neben Rotationen, Projektionen usw.) auch mit Matrizen darstellen zu können. Der Unterschied liegt hier nämlich darin, dass Verschiebungen eine Addition verlangen, die anderen Typen von Transformationen hingegen auf Multiplikationen mit den Ausgangskoordinaten basieren.
;)

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

3

10.05.2009, 20:33

Zitat von »"ph4nt0m"«

Ein Grund (und möglicherweise der wichtigste) ist, dass man mit einer 4x4 Matrix auch Translationen, also einfache Verschiebungen beschreiben kann. Das geht mit einer 3x3 Matrix (bei dreidimensionalen Koordianten) nicht.

Falsch! Mit einer 3x3-Matrix kann man einen Vektor mit drei Komponenten transformieren. Um mit einer 4x4-Matrix 3D-Vektoren transformieren zu können, wir ja extra eine Vektorkomponente hinzugefügt.

Zitat von »"ph4nt0m"«


Und da man in der 3D-Programmierung ziemlich großen Gebrauch des Assoziativgesetzes macht, ist es eben wichtig, Translationen (neben Rotationen, Projektionen usw.) auch mit Matrizen darstellen zu können. Der Unterschied liegt hier nämlich darin, dass Verschiebungen eine Addition verlangen, die anderen Typen von Transformationen hingegen auf Multiplikationen mit den Ausgangskoordinaten basieren.

Das ist doch gar nicht die Frage! Warum man Matrzen braucht, weiß ich sehr gut.

Mit freundlichen Grüßen,
WhiteMike

ph4nt0m

Frischling

Beiträge: 81

Beruf: Student

  • Private Nachricht senden

4

10.05.2009, 20:38

Na dann zeig mir mal eine Translation von Vektoren, die aus drei Komponenten bestehen, mit einer 3x3 Matrix.
;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

10.05.2009, 20:44

Doch, ph4nt0m hat schon recht. Schau dir mal Diverses zum Thema Homogene Koordinaten an.

6

10.05.2009, 20:50

Guck dir einfach an, wie man Matrizen multipliziert und wie man Translations- (Verschiebungs-) Matrizen aufbaut. Dann wirst du direkt sehen, warum die 4 Komponenten brauchen.
Lieber dumm fragen, als dumm bleiben!

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

7

10.05.2009, 21:00

Zitat von »"Jonathan_Klein"«

Guck dir einfach an, wie man Matrizen multipliziert und wie man Translations- (Verschiebungs-) Matrizen aufbaut. Dann wirst du direkt sehen, warum die 4 Komponenten brauchen.


Ah! Wie blöd.
Gut, jetzt weiß ich, was du meinst.
Danke für eure Hilfe.

Mit freundlichen Grüßen,
WhiteMike

Werbeanzeige