第四章 学习Shader所需要的数学基础
来源:互联网 发布:暨南大学网络教育平台 编辑:程序博客网 时间:2024/06/05 15:08
一.坐标系与矢量
1.左手座标系与右手座标系
左手座标系使用左手法则,即旋转时顺时针旋转。
右手坐标系使用右手法则,即旋转时逆时针旋转。
Unity使用左手坐标系。这也竟未着在模型空间,一个物体的右侧,上侧,前侧分别对应x轴,y轴,z轴。
但在观察空间,Unity使用右手坐标系。观察空间,就是指以摄像机为原点的坐标系。
二.坐标系与矢量
1.基本概念
矢量相减是减数指向被减数。
如果我们要计算b相对于a的位移,可以用b减去a
2.矢量的点积
2.1 公式
a*b = ax*bx+ay*by+az*bz;
2.2 几何意义
意义1:
a*b即 b在a上的投影。通过点积结果的符号,可以判断两条直线的关系。
意义2
a*b = |a||b|*cos
3.矢量的叉乘
3.1 公式
aXb = (aybz-azby,azbx-axbz,axby-aybx)
注意叉乘不满足交换率和结合率。
3.2几何意义:
1:|axb|=|a||b|sin
2:计算一个垂直于平面,三角形的矢量,也可以用于判断 三角面片的朝向。
三.矩阵
3.1 矩阵乘法
一个rxn矩阵A和一个nxc矩阵相乘,结果是一个rxc矩阵。
注意第一个矩阵的列数必须和第二个矩阵的行数相同,否则无法相乘。
3.2 矩阵乘法性质
3.2.1 不满足交换率,向量叉乘满足交换率
3.2.2 满足结合率,向量叉乘不满足结合率
3.3 方块矩阵
方块矩阵,简称方阵,指行和列数目相等的矩阵。
一个矩阵除了对角元素外的所有元素都为0,那么这个矩阵就叫对角矩阵。
3.4 单位矩阵
对角数字都是1的对角矩阵,是单位矩阵。
单位矩阵与任何矩阵相乘还是原来的矩阵,相当于标量中的数字1.
3.5 转置矩阵(右上角T表示 )
将原矩阵翻转一下,即原矩阵的第i行变成 了第j列,第j行变成了第j列。
3.6 逆矩阵(右上角-1)
必须是方阵。
方阵M与逆矩阵M-1相乘,那么结果将是一个单位矩阵。
如果存在逆矩阵,我们就说这个矩阵是可逆的,或者非奇异的。
几何意义:
如果用M矩阵进行了一次变换同,再使用逆矩阵进行另外一次变换,会得到原来 的矢量。
3.7 正交矩阵
方阵M和它的矩阵乘积是单位矩阵,则说这个矩阵是正交矩阵,即逆矩阵与转置矩阵相等。
意义:
三维变换中经常使用逆矩阵求解反向变换。逆矩阵求解计算量大,而转置矩阵却非常容易求解。
3.8 行矩阵与列矩阵
在unity中,常规做法是把矢量放在矩阵的右铡,即把矢量转换成列矩阵来进行计算。
四.矩阵几何意义:变换
1.齐次坐标
3X3矩阵不能表示平衡操作,所以将其扩展到4X4矩阵,这就是齐次坐标。
五.坐标空间
模型空间->世界空间->观察空间(摄像机空间)->裁剪空间(视锥体)->屏幕空间
阅读全文
0 0
- 第四章 学习Shader所需要的数学基础
- 第4章 学习Shader所需的数学基础(上)(坐标系、点和矢量)
- 第4章 学习Shader所需的数学基础(中)(矩阵)
- 笔记-Shader所需的数学基础
- 第4章 学习Shader所需的数学基础(终)(Unity Shader内置变量与练习题答案)
- 【Unity Shader入门精要】Shader所需的数学基础
- 第4章 学习Shader所需的数学基础(下)(坐标空间及其变换)
- 【Unity Shader入门精要】— 写Shader所需的数学基础
- 机器学习所需的数学基础
- 机器学习需要的数学基础
- 机器学习所需要的数学基础知识---矩阵(1)
- Unity Shader学习笔记:基础数学
- 3D数学基础 图形与游戏开发的学习 第四章 向量
- 学习人工智能需要哪些必备的数学基础?
- unity shader:数学基础
- 为什么要重视数学?机器学习需要哪些数学基础?
- 嵌入式系统开发所需要的基础
- hibernate最基础所需要的包
- SpringMVC实现文件下载的两种方法
- 运算符优先级
- git-删除fork的项目
- 纯前端利用 js-xlsx 实现 Excel 文件导入导出功能示例
- 2.搭建Java开发环境
- 第四章 学习Shader所需要的数学基础
- 二维数组转换为一维
- 堆排序
- C#单独类中控制窗口的show和hide(基于WPF)
- mySQL批量插入删除操作
- SpringMVC中定时任务配置
- windows稀疏文件
- !important的用法
- 详解操作系统中断