前幾天遇到一個旋轉矩陣 談一下它的構建
mat3 rotation = mat3(cross(up, -normal), up, -normal) ;//up 垂直於normal
為什麼呢
涉及的一個概念是基變換
假設空間一個向量 它的三個座標軸xyz
旋轉這個向量, 同時保持軸相對於它的位置不變得到的新軸 為子空間的基底 這個變換叫基變換
就是一個向量(比如這個子空間的單位向量)乘以剛剛這個矩陣得到它在父空間的位置
cross(up, -normal), up, -normal這個就是新的三個軸
遊戲引擎架構 葉勁鬆譯 page151