Unity Shader总结(二)——矢量和矩阵

一、向量的点乘

在这里插入图片描述

用途

1.计算向量的投影
2.根据cos值来判断是否在视野范围内或者在物体的前后左右。

二、 向量的叉乘

在这里插入图片描述

用途

1.求出法向量
2.判断三角面片正反

三、矩阵

正交矩阵

矩阵中要注意的正交矩阵,一个正交矩阵的转置和它的逆矩阵相等,即:
在这里插入图片描述
逆矩阵求解计算量大,所以当它是正交矩阵时只要转置一下就是逆矩阵。
判断正交矩阵可以判断 M M T MM^{T} MMT是否是单位矩阵,最节省计算量的方法还是直接判断该矩阵是否是由标准正交基构成。例如:
在这里插入图片描述                                                  在这里插入图片描述
在Unity中矩阵相乘常规做法是把矢量放在矩阵右侧,即 A v = v A T Av=vA^{T} Av=vAT

仿射变换

首先梳理一下知识点
线性变换(3x3矩阵):缩放和旋转
仿射变换(齐次坐标空间,4x4矩阵):合并了线性变换和平移变换,3x3矩阵没有办法进行平移。

平移

对点平移(对矢量没有用,矢量没有位置的概念)
[ 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 ] \begin{bmatrix} 1&0 &0 & t_{x}\\ 0& 1 & 0 &t_{y} \\ 0& 0& 1& t_{z}\\ 0& 0& 0&1 \end{bmatrix} 100001000010txtytz1 [ x y z 1 ] \begin{bmatrix} x\\ y\\ z\\ 1 \end{bmatrix} xyz1

缩放

对点: [ k x 0 0 0 0 k y 0 0 0 0 k z 0 0 0 0 1 ] \begin{bmatrix} k_{x}&0 &0 & 0\\ 0& k_{y} & 0 &0\\ 0& 0& k_{z}& 0\\ 0& 0& 0&1 \end{bmatrix} kx0000ky0000kz00001

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值