变换矩阵

article/2025/9/15 6:56:21

1、变换矩阵

变换矩阵可以分解为缩放,旋转,平移矩阵的乘积:

M = T * R * S - 右手坐标系

当均匀缩放时,旋转和缩放可以交换顺序

缩放和平移不可以交换顺序

2、子坐标系与父坐标系

由在父坐标系中的坐标位置P,和三根轴X,Y,Z可定义一个子标系,按列构成一个变换矩阵[X,Y,Z,P],这个矩阵构成由子标系变换到父坐标系的变换矩阵。DX里面需要转置一下。即按行构造。

一个例子是视图矩阵的构建,子空间由视点和三根正交轴定义,视图矩阵则是由它们构成的列矩阵的仿射求逆-由世界变换到视图空间。

另一个例子世界变换矩阵,它由新模型坐标系的位置和三根轴【定义在世界空间】按列构成。即由模型空间变换到世界空间。初始情况模型空间与世界空间是对齐的。

3、投影矩阵-OpenGL

透视投影矩阵:

可以知道投影变换后的w=-Ze,即在视图空间的深度

在投影面上的坐标Xp, Yp为:Xp=n*Xe/-Ze=Xclip/w*r,Yp=n*Ye/-Ze=Yclip/w*t

投影后Ze从[-n,-f]线性映射到[-n,f],除以w后进一步非线性映射到[-1,1]

透视投影除以w后,视景体的八个角点【视图空间坐标】分别映射到NDC空间中的八个角点,如[r,t,-n,1]映射到[1,1,-1,1],[f*r/n,f*t/n,-f,1]映射到[1,1,1,1]

正交投影矩阵:

变换后w=1,Xe,Ye,Ze被线性映射到-1~1,而透视投影是非线性映射,因而有Z-Fighting问题。

4.应用例子:从深度图重建位置

延迟渲染,SSR等特效都要求由深度信息重建位置信息,如果深度是归一化过的【0~1非线性】,可以将由纹理坐标uv[画一个全屏Quad],深度z,计算出在NDC中的坐标,然后由投影矩阵逆变换,得到视图空间中的位置,这种情况会有精度损失,因为z是非线性的。解决办法是直接使用视图空间的深度,由uv可以得到NDC中的坐标[a,b,1,1],逆变换到视图空间,得到ray=[a',b',f,1],结合深度d,可以计算出坐标为d/f*ray。


http://chatgpt.dhexx.cn/article/7sR4aHEj.shtml

相关文章

矩阵基础与变换

矩阵基础 矩阵的基本概念 由 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…

java关键字概念

1. 访问控制 1) private 私有的 private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。 只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。在类的外部或者对于子类而言…

Java关键字—基本数据类型

Java关键字之—基本数据类型 byte、shout、int、long、float、double、boolean、char关键字 byte、shout、int、long、float、double基本数据类型中的数值型,且在保存数据时第一个bit要作为符号位进行整形符号的保存,0为正数,1为负数。 byte…

Java关键字和标识符

java关键字和标识符知识点详细解析,如下: java关键字知识点 什么是java关键字? 关键字的概念:Java 语言中有一些具有特殊用途的词被称为关键字。 java中常用关键字: 注意:Java 关键字是区分大小写的。所…

Java关键字查询

java关键字_百度百科 (baidu.com)https://baike.baidu.com/item/java%E5%85%B3%E9%94%AE%E5%AD%97/5808816?fraladdin 关键字 含义 abstract 表明类或者成员方法具有抽象属性 assert 断言,用来进行程序调试 boolean 基本数据类型之一,声明布尔类…

6、java关键字

6、关键字 6.1、final 最终的 -修饰基本类型变量,一经出初始化后就不能够对其进行修改。 -修饰引用类型变量,不能够指向另一个引用。 - 修饰类:表示类不可被继承 - 修饰方法:表示方法不可被子类覆盖,但是可以重载 -…

Java关键字this详解

this关键字概述 在实例方法或构造函数中,this 是对当前对象的引用调用其方法或构造函数的对象。 可以使用 this 在实例方法或构造函数中引用当前对象的任何成员。 this与字段一起使用 使用this关键字的最常见的情况是字段被方法或构造函数中的参数覆盖&#xff0…

Java关键字与保留字

1.关键字和保留字 关键字(Keyword)的定义和特点 1.定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 2.特点:关键字中的所有字母都是小写 保留字(reserved word) Java保留字:现有Java版本尚未使用,但以后的…

Java关键字及其作用详解

Java中的关键字有如下表格中这么多 表中null true false严格来讲不是关键字 下面分别解释一下每个关键字的含义。 private一种访问控制方式:私用模式protected一种访问控制方式:保护模式public一种访问控制方式:共用模式abstract表明类或者…