前几天遇到一个旋转矩阵 谈一下它的构建
mat3 rotation = mat3(cross(up, -normal), up, -normal) ;//up 垂直于normal
为什么呢
涉及的一个概念是基变换
假设空间一个向量 它的三个坐标轴xyz
旋转这个向量, 同时保持轴相对于它的位置不变得到的新轴 为子空间的基底 这个变换叫基变换
就是一个向量(比如这个子空间的单位向量)乘以刚刚这个矩阵得到它在父空间的位置
cross(up, -normal), up, -normal这个就是新的三个轴
游戏引擎架构 叶劲松译 page151
时间: 2024-11-10 14:34:35