坐标系
3DMAX是右手坐标系 Unity是左手坐标系 做建模要考虑到适应的坐标系
就是这个切换世界本地坐标可以去点击切换
当物体Reset 后模型坐标是和世界坐标重合
旋转有两种旋转自身物体 或者旋转世界坐标系(这样模型坐标不会变化)
就是视椎体内的东西的面会被送到GPU渲染
然后进行投影 类似于相似三角形的算法
该把3D的东西映射到2D上 有一个近大远小的变化
我们相机有个正交投影 就没有近大远小的概念了 一般用于2D游戏或者UI相机
之后用矩阵可以进行变换,经过模型-世界-相机-屏幕 3步转换叫MVP
向量
复习一下初中知识还是高中知识忘了,线性代数里面也有
是和标量进行对比的
标量:有大小无方向
向量:有大小有方向(没有位置概念)
Unity有2D 3D 4D向量 4D是(x,y,z,w)用于矩阵 也叫其次向量
谁是被减数向量就指向谁
点乘得到的是一个标量
点乘可以得到这两个夹角有多大
a·b>0 方向基本相同,夹角在0°到90°之间
a·b=0 正交,相互垂直
a·b<0 方向基本相反,夹角在90°到180°之间
这个表我找的挺清晰的 顺便复习下初中知识
叉乘
叉乘结果得到一个向量垂直于两个向量,就是法向量
不过这个是矩阵相乘 AXB不等于BXA BXA是一个反方向垂直于两个向量的法向量 之后计算根据顶点的传递顺序来算
如果计算的是反方向的,就相当于是背着我们的,就会被背面剔除掉
这个帖子介绍的还不错
https://blog.csdn.net/july_unity/article/details/79265912
矩阵
虽然看着和多维数组一样 但是概念相差很多
转置就是行列互换 在转置就是原矩阵
向量也是矩阵
就是第一个矩阵的行向量乘上第二个矩阵的列向量
通俗的说就是第一个矩阵的第一行分别依次乘上第二个矩阵的第一列相加,然后再乘第二列,第三列,就是新矩阵的第一行
然后第一个矩阵第二行 同上依次
因为顺序,所以他们反过来乘答案会不一样
但是交换位置,同时又都转置就是下面的公式, 下面的T代表转置
那这种怎么算呢 需要转置后相乘
一般游戏中都是向量乘矩阵
之前有个函数 mul 乘法 mul(矩阵,向量),还有个重载可以传mul(向量,矩阵)
矩阵在前面需要矩阵转置
单位矩阵就是乘完还是它本身
矩阵和变换
用VS做练习