测验:齐次坐标与变换顺序
3D 变换使用 4x4 矩阵最直接的原因是什么?
- GPU 只能处理 4 的倍数尺寸
- 要用乘法表示平移,必须增加一个维度
- 提高浮点数精度
- 把旋转和缩放放入同一个矩阵
齐次坐标中第四个分量 w 为 0,表示什么?
- 忽略该向量
- 它是指向原点的点
- 它表示方向而非位置
- 它尚未归一化
采用列向量右乘的约定时,把 mul(T, R) 应用于点会按什么顺序变换?
- 先旋转,后平移
- 先平移,后旋转
- 同时应用,没有顺序
- 无论矩阵构造顺序如何,始终先平移
如果 cross((1,0,0), (0,1,0)) 得到 (0,0,-1),应怀疑什么?
- 没有归一化向量长度
- 计算了点积而不是叉积
- 把叉积分量的符号反转,使坐标系手性相反
- 浮点误差累积
使用含非均匀缩放的模型矩阵变换法向量,会发生什么?
- 只有法线长度变化,方向不变
- 法线不再垂直于表面,导致光照错误
- 法线反转,正反面交换
- 不会出现任何问题
每帧把微小旋转矩阵继续相乘,数百帧后物体为何会逐渐变形?
- 矩阵乘法不满足交换律
- 角度超过 360 度后溢出
- 浮点误差累积,破坏矩阵的正交性
- 旋转矩阵的行列式不为 1