ฉันประสบปัญหาในการพยายามหาลำดับการคูณที่ถูกต้องสำหรับเมทริกซ์การแปลงสุดท้าย ฉันมักจะได้รับการเคลื่อนไหวที่แปลกหรือเรขาคณิตที่บิดเบี้ยว รุ่นปัจจุบันของฉันมีคำอธิบายด้านล่าง:
สำหรับโหนดเดียวลำดับการคูณของฉันคือ:
L = S * R * T
ที่ไหน
L = เมทริกการแปลงโลคัล
S = เมทริกซ์สเกลท้องถิ่น
R = เมทริกซ์การหมุนโลคัล
T = เมทริกซ์แปลโลคัล
สำหรับการเปลี่ยนแปลงโลกของโหนด:
W = PW * L
ที่ไหน
W = เมทริกซ์การแปลงโลก
PW = เมทริกซ์การแปลงโลกผู้ปกครอง
L = เมทริกการแปลงโลคัลที่คำนวณข้างต้น
เมื่อแสดงผลสำหรับแต่ละโหนดฉันคำนวณเมทริกซ์:
MV = Inv (C) * NW
ที่ไหน
MV = เมทริกซ์การแปลงมุมมองโมเดลสำหรับโหนดเฉพาะ
Inv (C) = เมทริกซ์การแปลงกล้องผกผัน
NW = เมทริกซ์การแปลงโลกของโหนดที่คำนวณข้างต้น
ในที่สุดฉันก็มีการเปลี่ยนแปลงที่รกร้าง:
TVP = PRP * MV * VP
ที่ไหน
TVP = ตำแหน่งจุดสุดยอดที่ถูกแปลงสุดท้าย
PRP = เมทริกซ์เปอร์สเปคทีฟ
MV = เมทริกซ์การแปลงโลกของโหนดที่คำนวณข้างต้น
VP = ตำแหน่งจุดสุดยอดที่ไม่เปลี่ยนรูปแบบ
ด้วยรุ่นปัจจุบันโหนดลูกที่มีการหมุนในท้องถิ่นหมุนแปลก ๆ เมื่อเปลี่ยนกล้อง ฉันผิดไปจากลำดับการคูณที่ไหน