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
Zitat
So, vor dem Rendern transformiere ich dann alle Joints. Den ersten Joint (also den ohne Parent) transformiere ich mit der WorldViewProjection-Matrix.
Zitat von »"dot"«
wenn du deine joints insofern limitierst, dass diese nur rotiert und verschoben werden können (was im allgemeinen reichen sollte, bei characteranimation sollte es sogar reichen nur zu rotieren).
damit kannst du zum transformieren der position ganz normal die matrix und für die normalen nur den 3x3 teil der matrix nehmen und brauchst nurmehr eine matrix (4 register).
Quellcode |
|
1 2 3 4 |
m4x4 r0, v0, c[a0.x+10] //position, c[a0.x+1] = Joint Matrix m3x3 r1, v1, c[a0.x+10] //normalvektor m4x4 oPos, r0, c0 //c0 WorldViewProjection Matrix |
Quellcode |
|
1 2 3 4 |
m4x4 r0, v0, c[a0.x+10] //position, c[a0.x+1] = Joint Matrix m3x3 r1, v1, c[a0.x+10] //normalvektor m4x4 oPos, r0, c0 //c0 WorldViewProjection Matrix |
Zitat
Toll, jetzt hab ja doch wieder zwei 4x4 Matrizen, jedenfalls für die Position. Cool Da kann ich ja gleich die Joint-Matrix mit der WorldViewProjection Matrix vor dem Rendern transformieren.
Zwar kann ich dann keine Normalvektoren mehr transformieren (im Shader) aber das mach ich eh nicht weil ich stattdessen alle Lichtquellen in das Objektkoordinatensystem transformiere.
Werbeanzeige