shader中的常用矩阵变换

article/2025/9/15 6:05:40

unity shader 矩阵学习

  • 矩阵运算法则
    • (1)矩阵和标量的乘法
    • (2)矩阵和矩阵的乘法
    • 矩阵相乘的条件 和 结果的行数和列数
  • 变换的基本概念
    • (1)变换
    • (2)线性变换
    • (3)平移变换
    • (4)仿射变换
    • (5)齐次坐标
  • 2D 矩阵变换
    • (1)绕坐标中心旋转 a 角度的变换矩阵
    • (2)沿坐标轴缩放的变换矩阵
    • (3) 沿任意N轴缩放的变换矩阵
  • 3D 矩阵变换
    • (1)绕X轴旋转的变换矩阵
    • (2)绕Y轴旋转的变换矩阵
    • (3)绕Z轴旋转的变换矩阵
    • (4)3D缩放矩阵
  • 平移矩阵
    • (1)2D平移矩阵
    • (2)3D平移矩阵
    • (3)在3D中绕Y轴先旋转,再平移
  • 变换组合
    • (1)如何把物体从模型坐标变换到摄像机的投影坐标
  • 透视投影(小孔成像)
    • 透视投影矩阵
  • 应用 mul(MT,V)

矩阵运算法则

(1)矩阵和标量的乘法

在这里插入图片描述

(2)矩阵和矩阵的乘法

在这里插入图片描述

矩阵相乘的条件 和 结果的行数和列数

在这里插入图片描述

变换的基本概念

(1)变换

我们把一些数据,如点、方向矢量甚至颜色等,通过某种方式进行转换的过程

(2)线性变换

线性变换指的是那些可以保留矢量加和标量乘的变换。例如:缩放、旋转、错切、镜像、正交投影等;

(3)平移变换

平移变换不是线性变换,它满足标量乘法,但不满足矢量加法。

(4)仿射变换

合并线性变换和平移变换的变换类型。3D的仿射变换可以使用一个4×4的矩阵来表示,即齐次坐标空间。

(5)齐次坐标

齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示;对于一个点,从三维坐标转换成齐次坐标是把其w分量设为1,而对于方向矢量来说,需要把其w分量设为0。

2D 矩阵变换

(1)绕坐标中心旋转 a 角度的变换矩阵

在这里插入图片描述

(2)沿坐标轴缩放的变换矩阵

在这里插入图片描述

(3) 沿任意N轴缩放的变换矩阵

在这里插入图片描述

3D 矩阵变换

(1)绕X轴旋转的变换矩阵

在这里插入图片描述

(2)绕Y轴旋转的变换矩阵

在这里插入图片描述

(3)绕Z轴旋转的变换矩阵

在这里插入图片描述

(4)3D缩放矩阵

在这里插入图片描述

平移矩阵

(1)2D平移矩阵

在这里插入图片描述

(2)3D平移矩阵

在这里插入图片描述

(3)在3D中绕Y轴先旋转,再平移

在这里插入图片描述

变换组合

(1)如何把物体从模型坐标变换到摄像机的投影坐标

第一步:把物体从模型坐标变换到世界坐标:使用物体在模型坐标空间中的顶点 X 模型坐标到世界坐标的矩阵,结果是物体在世界坐标空间中的顶点信息
在这里插入图片描述
第二步:把物体从世界坐标变化到摄像机的投影坐标:使用物体在时间空间中的顶点信息 X 世界坐标到投影坐标的变换矩阵,结果便是 物体在投影坐标空间中的顶点信息
在这里插入图片描述

当然,也可以不用这么麻烦,如果知道模型坐标空间到投影坐标空间的变换矩阵,可以直接使用物体在模型空间中的顶点信息 X 变换矩阵
在这里插入图片描述

透视投影(小孔成像)

在这里插入图片描述

透视投影矩阵

在这里插入图片描述
d是摄像机到投影平面的距离

上面的矩阵都是使用 mul(V,M),下面的是 mul(MT,V),

应用 mul(MT,V)

(1)把 点(x,y,z)平移 (tx,ty,tz)个单位
在这里插入图片描述
(2)旋转
在这里插入图片描述
(3)复合变换:从右向左依次是:缩放,旋转,平移
在这里插入图片描述
(4)同时绕3个轴进行旋转, 按照ZXY的顺序
在这里插入图片描述


http://chatgpt.dhexx.cn/article/mFmNFkfm.shtml

相关文章

【Matlab】矩阵变换与矩阵求值

矩阵变换与矩阵求值 对角矩阵:只有对角线上有非零元素的矩阵。 数量矩阵:对角线上的元素相等的对角矩阵。 单位矩阵:对角线上的元素都为1的对角矩阵。 diag函数 提取矩阵的对角线元素 diag(A):提取矩阵A主对角线元素&#x…

闫令琪图形学入门笔记(矩阵变换篇)

整个坐标变化过程贯穿管线渲染,它与光栅化、着色一同构成GPU完整的渲染过程。所以理解三维世界的坐标与矩阵变换是首要的学习内容 1.1 向量的点乘与叉乘 点乘 向量的点乘可以求得一个数,利用点乘可以进一步计算两向量的夹角大小,或者一个…

点云矩阵变换

点云矩阵变换 变换矩阵工作原理 : |-------> 变换矩阵列| 1 0 0 x | \| 0 1 0 y | }-> 左边是一个3阶的单位阵(无旋转)| 0 0 1 z | /| 0 0 0 1 | -> 这一行用不到 (这一行保持 0,0,0,1)要进行点云旋转,需要对3阶矩阵进行赋值 如何赋值参考&#xf…

OpenGL矩阵变换

参考内容: 1. 这次,彻底搞懂 OpenGL 矩阵转换 2. Article - World, View and Projection Transformation Matrices 模型变换的基本流程图: 1. 模型变换 模型变换解决的是,把物体在世界坐标系下的位置拆分成平移、缩放、旋转的…

MATLAB矩阵变换

目录 对角阵与三角阵 1、对角阵 (1)提取矩阵的对角线元素 (2)构造对角阵 2、三角阵 (1)上三角阵 (2)下三角阵 矩阵的转置与旋转 1、矩阵的转置 2、矩阵的旋转 3、矩阵的左右翻转 4、矩阵的上下翻转 矩阵的逆与伪逆 1、矩阵的逆 2、矩阵的伪…

Cesium 矩阵变换

在Cesium和其他三维开发中中经常用到矩阵变换。比如将一个物体移动、缩放、平移都可以用变换矩阵来计算。 再比如将三维场景中的物体转换为屏幕上显示的二维图形,需要用到透视投影(perspective projection)矩阵。 变换(tansform…

浅谈矩阵变换——Matrix

矩阵变换在图形学上经常用到。基本的常用矩阵变换操作包括平移、缩放、旋转、斜切。 每种变换都对应一个变换矩阵,通过矩阵乘法,可以把多个变换矩阵相乘得到复合变换矩阵。 矩阵乘法不支持交换律,因此不同的变换顺序得到的变换矩阵也是不相同…

变换矩阵

1、变换矩阵 变换矩阵可以分解为缩放,旋转,平移矩阵的乘积: M T * R * S - 右手坐标系 当均匀缩放时,旋转和缩放可以交换顺序 缩放和平移不可以交换顺序 2、子坐标系与父坐标系 由在父坐标系中的坐标位置P,和三…

矩阵基础与变换

矩阵基础 矩阵的基本概念 由 m n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m n矩阵(引用百度百科)。记作: 这mn 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列。 矩阵的加法 同型…

2.2 矩阵变换

写在前面:作者本人是纯纯的菜鸟,学习的内容来自于 中国大学MOOC 中南大学 《科学计算与MATLAB语言》,欢迎各位大佬或新手在这里和平讨论,如果我有错误请各位不吝赐教,提前感谢各位捧场! 何为矩阵变化&#…

线性代数学习笔记——第七十二讲——共轭矩阵

1. 本讲内容概要 2. 复数及其性质及复数的运算 3. 复共轭及模 4. 共轭矩阵的定义及性质

共轭矩阵 正定矩阵

https://blog.csdn.net/know9163/article/details/80551764

共轭 、 共轭转置、共轭矩阵、酉矩阵、正定矩阵、半正定矩阵

共轭复数 实数部分相同而虚数部分互为相反数的两个复数。 矩阵的共轭转置 把矩阵转置后,再把每一个数换成它的共轭复数。 自共轭矩阵 矩阵中每一个第i 行第j 列的元素都与第j 行第i 列的元素的共轭相等。 酉矩阵 AH 是A 的共轭转置 A叫做酉矩阵 正定矩阵 半正…

matlab-线性代数 对矩阵取共轭(不用函数)

由上图所示,可以得知:a是求矩阵的共轭转置,而a.是求矩阵的共轭。在数学中,共轭转置表示为在矩阵的右上角加上H。 如果矩阵是实数矩阵,那么a和a.的结果一样,都是求矩阵的转置,如下图所示&#xf…

我的矩阵学习

摘自矩阵(数学术语)_百度百科 定义 由 m n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m n矩阵。记作: 这mn 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i…

矩阵的共轭

The conjugate of a matrix(矩阵的共轭):矩阵元素中有复数(complex number),将矩阵中的复数求共轭,实数不变。矩阵的共轭记为。如:

旋转矩阵,矩阵,共轭矩阵

旋转矩阵,矩阵,共轭矩阵 1.旋转矩阵1. 旋转矩阵简介2. 性质3. 二维空间3.1 普通旋转3.2 复平面 4. 三维空间4.1 旋转4.2 角-轴表示和四元数表示4.3 欧拉角表示4.4 对称保持 SVD 表示 5 .其他5.1 旋转轴5.2 叉乘计算 2 矩阵2.1 定义2.2 矩阵的基本运算2.3…

矩阵的迹\矩阵的秩\伴随矩阵\共轭矩阵,基底、维数与秩,相对某个基底的坐标计算方法

矩阵的迹(Trace) n n n\times n nn的方阵A的n个对角线元素的和称为方阵A的迹,记作tr(A). A ( a 11 ⋯ a 1 n ⋮ ⋮ a n 1 ⋯ a n n ) A\begin{pmatrix}a_{11}&\cdots &a_{1n}\\\vdots&\ &\vdots\\a_{n1}&\cdots&a_…

共轭复数,共轭根式,共轭矩阵,共轭方向,共轭方向法,共轭梯度法,共轭分布,共轭函数,傅里叶变换的共轭对称

目录 1. 共轭复数 2. 傅里叶变换的共轭对称性 3. 共轭根式(radical conjugates) 4. 共轭矩阵(自共轭矩阵、Hermitian(埃尔米特)矩阵) 5. 共轭方向 6. 共轭方向法 7. 共轭梯度法 8. 共轭分布(conjugacy) 9. 共轭函数&…

Java关键字之Assert

参考博客来自:Assert断言语法与触发 一.assert关键字是什么? 在C和C语言中都有assert关键,表示断言。 在Java中,同样也有assert关键字,表示断言,用法和含义都差不多,与之同理的就是if&#xff…