מדובר במטריצות 4 על 4 (מערכת צירים הומוגנית) כדי לתמוך בהזזות
S מטריצת scaling יכולה להגדיל להקטין או לשקף את הקדקוד שלכם מטריצה אלכסונית btw
R_x,R_y,R_z מטריצות rotation יכולות לסובב סביב כל ציר בנפרד את הקדקוד שלכם תהליך מאוד פשוט עם cos ו-sin דמוי אלכסונית (תחפשו קוארדינטות פולריות לסיבוב עם הזהות של חיבור ותבינו..)
T מטריצת translation יכולה להעתיק את הקדקוד שלכם למקום אחר במרחב ע"י הוספה בגדול האיברים בעמודה האחרונה פרט לזה מטריצת יחידה
יש לכם מטריצת מודל M=T*R_z*R_y*R_x*S שבצירוף כל הטרנספורמציות שתיארנו מעבירה את הקדקוד ממרחב מקומי local space למרחב גלובלי world space
יש לכם מטריצת תצוגה V שמעבירה מworld לview space להתאים למצלמה בראשית
ויש לכם בסוף מטריצת הטלה P שמשטחת את התמונה התלת ממדית של המצלמה למסך הדו ממדי שלכם, מעבר ל-clip space
בכל מילשנייה ה-GPU שלכם מבצע את הפעולות הללו אינספור פעמים כדי לתאר לכם גרפיקה מורכבת ומגוונת במרחב גיאומטרי
שימו לב לhack קטן בסיבוכיות:
אם היינו מחשבים את הטרנספורמציה לכל קדקוד בפוליגון בנפרד היינו צריכים לעבור 7 טרנספורמציות כל פעם מחדש, כל אחת זמן 4*4=16 לחישוב, כלומר 112n חישובים בכל פריים של הפוליגון שלכם כש-n מספר הקדקודים. במקום זה אנחנו יכולים להשתמש באסוציאטיביות כדי לחשב פעם אחת את w(x) (בזמן 6*4*4*4=384) ואז להכפיל לכל קדקוד - מקבלים 384+16n חישובים בלבד. נשווה אסימפטוטית ונקבל פי 7 ביצועים טובים יותר!
האלגברה הלינארית היא ממזר מתוחכם שבא לעזור לכם במחשוב וזו רק דוגמה אחת..