《Unity Shader入门精要》自学笔记(二)矩阵、空间以及获取变换矩阵思路的总结

学习目标
了解空间变换时获得新坐标的思路,尽量不深究矩阵的运算

矩阵的基础知识

矩阵是什么

线性代数的本质 - 03 - 矩阵与线性变换(真的没有偷懒)
 

正交矩阵

作用

这是个很有诱惑力的矩阵,因为如果一个矩阵被证明是正交矩阵,那就等价于:
M T M^T MT M M M = I I I M M M M T M^T MT = I I I M − 1 M^{-1} M1 = M T M^T MT

 

判断

主要有两种方法判断:

  1. 构成矩阵的向量是一组标准正交基(即组成某个坐标系的三个轴的归一化向量)
  2. 矩阵只进行了旋转操作

条件太苛刻了,妥协一下:若矩阵是只进行了旋转、统一缩放,那么它需要在等式中乘上 k k k 1 k \frac1k k1

 

 

变换矩阵

基本变换矩阵

平移矩阵

T T_{} T = [ 1 0 0 T x 0 1 0 T y 0 0 1 T z 0 0 0 1 ] \begin{bmatrix} 1&0&0&Tx\\0&1&0&Ty\\ 0&0&1&Tz\\ 0&0&0&1\end{bmatrix} 100001000010TxTyTz1
 

缩放矩阵

S S_{} S = [ S x 0 0 0 0 S y 0 0 0 0 S z 0 0 0 0 1 ] \begin{bmatrix} Sx&0&0&0\\0&Sy&0&0\\ 0&0&Sz&0\\ 0&0&0&1\end{bmatrix} Sx0000Sy0000Sz00001
 

旋转矩阵

绕某一轴旋转 = 在其他两轴所组成的平面进行旋转
 
R x ( y o z ) R_{x(yoz)} Rx(yoz) = [ 1 0 0 0 0 c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 ] \begin{bmatrix} 1&0&0&0\\0&cosθ&-sinθ&0\\ 0&sinθ&cosθ&0\\ 0&0&0&1\end{bmatrix} 10000cosθsinθ00sinθcosθ00001
 
R y ( z o x ) R_{y(zox)} Ry(zox) = [ c o s θ 0 s i n θ 0 0 1 0 0 − s i n θ 0 c o s θ 0 0 0 0 1 ] \begin{bmatrix} cosθ&0&sinθ&0\\ 0&1&0&0\\ -sinθ&0&cosθ&0\\ 0&0&0&1\end{bmatrix} cosθ0sinθ00100sinθ0cosθ00001
 
R z ( x o y ) R_{z(xoy)} Rz(xoy) = [ c o s θ − s i n θ 0 0 s i n θ c o s θ 0 0 0 0 1 0 0 0 0 1 ] \begin{bmatrix} cosθ&-sinθ&0&0\\ sinθ&cosθ&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} cosθsinθ00sinθcosθ0000100001
 
R x R_{x} Rx R z R_{z} Rz直接在二维旋转矩阵的基础上插入所绕轴,并用0和1替代
 
R y R_{y} Ry表现出来的 s i n θ sinθ sinθ的正负和 R x R_{x} Rx R z R_{z}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值