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

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

1

23.09.2006, 14:35

Rotationmatrix an VertexShader übergeben

hi,
ich bin gerade dabei ein VertexShader für die spiegelde Reflextion zu schreiben.
Da muss ja die Rotationmatrix des Objekts übergeben werden, sodass man den Normalvektor im Weltraum hat.
Aber wie bekomme ich die Rotationmatrix des Modells???

danke für Hilfe

Phili

unregistriert

2

23.09.2006, 14:43

Mit SetVertexShaderConstantF als Shader Constante setzen :?

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

3

24.09.2006, 11:53

Die Rotationsmatrix eines Modells ist die Weltmatrix aber auf 3x3 reduziert (ohne Translation!) und OHNE Skalierung!
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Phili

unregistriert

4

24.09.2006, 11:55

Naja, ich denk mal er will die Normalen transformieren... Dann braucht er die inverse Weltmatrix...

Black-Panther

Alter Hase

Beiträge: 1 443

Wohnort: Innsbruck

  • Private Nachricht senden

5

24.09.2006, 11:56

Zitat von »"Phili"«

Naja, ich denk mal er will die Normalen transformieren... Dann braucht er die inverse Weltmatrix...


Wieso? er will ja vom Modellraum in den Weltraum... Da muss man nicht invertieren!
stillalive studios
Drone Swarm (32.000 Dronen gleichzeitig steuern!)
facebook, twitter

Phili

unregistriert

6

24.09.2006, 12:28

@Black-Panther

Zitat

sodass man den Normalvektor im Weltraum hat

Normalenvektor=Richtungsvektor->invertierte Matrix
Wobei man natürlich für die Transformation der Positionsvektoren trotzdem noch die normale Weltmatrix braucht...

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

24.09.2006, 12:49

Nein, wenn dann braucht man die invertierte transponierte Matrix.
Aber solange keine Streckungen drin sind und wir nur eine Rotation haben (die Translation kann man rausschmeißen, indem man einfach mit einer 3x3-Matrix rechnet), braucht man nichts zu invertieren.

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

8

24.09.2006, 12:51

Kann ich dem Shader jetzt als Rotationsmatrix einfach die Transformationsmatrix des Objekts übergeben? (Habe ja im Shader die Rotationmatrix als float3x3 Variable)

EDIT: Als ich die Nachricht geschrieben habe stand David's Antwort da noch nicht!

Phili

unregistriert

9

24.09.2006, 13:01

@David Scherfgen

Zitat

invertierte transponierte Matrix.

Mein ich ja

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

24.09.2006, 18:26

Zitat

Kann ich dem Shader jetzt als Rotationsmatrix einfach die Transformationsmatrix des Objekts übergeben?


solang der 3x3 teil der matrix orthogonal ist, ja.
sonst -> inverse transpose (z.b. wenn deine matrix eine skalierung mit verschiedenen werten entlang der achsen durchführt)

Werbeanzeige