Saya mengalami kesulitan mencoba mencari urutan perkalian yang benar untuk matriks transformasi akhir. Saya selalu mendapatkan gerakan aneh atau geometri terdistorsi. Model saya saat ini dijelaskan di bawah ini:
Untuk satu node, urutan penggandaan saya adalah:
L = S * R * T
dimana
L = matriks transformasi lokal
S = matriks skala lokal
R = matriks rotasi lokal
T = matriks terjemahan lokal
Untuk transformasi dunia simpul:
W = PW * L
dimana
W = matriks transformasi dunia
PW = matriks transformasi dunia induk
L = matriks transformasi lokal yang dihitung di atas
Saat merender, untuk setiap node saya menghitung matriks:
MV = Inv (C) * NW
dimana
MV = matriks transformasi tampilan model untuk node tertentu
Inv (C) = matriks transformasi kamera terbalik
NW = matriks transformasi dunia simpul yang dihitung di atas.
Akhirnya, di shader saya memiliki transformasi fallowing:
TVP = PRP * MV * VP
dimana
TVP = posisi vertex akhir yang ditransformasikan
PRP = matriks perspektif
MV = matriks transformasi dunia simpul yang dihitung di atas
VP = posisi vertex yang tidak diubah.
Dengan model saat ini, node anak yang memiliki rotasi lokal, memutar aneh ketika mengubah kamera. Di mana saya salah dengan urutan perkalian?