坐標(biāo)系
3DMAX是右手坐標(biāo)系 Unity是左手坐標(biāo)系 做建模要考慮到適應(yīng)的坐標(biāo)系
就是這個(gè)切換世界本地坐標(biāo)可以去點(diǎn)擊切換
當(dāng)物體Reset 后模型坐標(biāo)是和世界坐標(biāo)重合
旋轉(zhuǎn)有兩種旋轉(zhuǎn)自身物體 或者旋轉(zhuǎn)世界坐標(biāo)系(這樣模型坐標(biāo)不會(huì)變化)
就是視椎體內(nèi)的東西的面會(huì)被送到GPU渲染
然后進(jìn)行投影 類似于相似三角形的算法
該把3D的東西映射到2D上 有一個(gè)近大遠(yuǎn)小的變化
我們相機(jī)有個(gè)正交投影 就沒有近大遠(yuǎn)小的概念了 一般用于2D游戲或者UI相機(jī)
之后用矩陣可以進(jìn)行變換旦签,經(jīng)過模型-世界-相機(jī)-屏幕 3步轉(zhuǎn)換叫MVP
向量
復(fù)習(xí)一下初中知識(shí)還是高中知識(shí)忘了费就,線性代數(shù)里面也有
是和標(biāo)量進(jìn)行對(duì)比的
標(biāo)量:有大小無方向
向量:有大小有方向(沒有位置概念)
Unity有2D 3D 4D向量 4D是(x,y,z,w)用于矩陣 也叫其次向量
誰是被減數(shù)向量就指向誰
點(diǎn)乘得到的是一個(gè)標(biāo)量
點(diǎn)乘可以得到這兩個(gè)夾角有多大
a·b>0 方向基本相同,夾角在0°到90°之間
a·b=0 正交尝哆,相互垂直
a·b<0 方向基本相反谋旦,夾角在90°到180°之間
這個(gè)表我找的挺清晰的 順便復(fù)習(xí)下初中知識(shí)
叉乘
叉乘結(jié)果得到一個(gè)向量垂直于兩個(gè)向量,就是法向量
不過這個(gè)是矩陣相乘 AXB不等于BXA BXA是一個(gè)反方向垂直于兩個(gè)向量的法向量 之后計(jì)算根據(jù)頂點(diǎn)的傳遞順序來算
如果計(jì)算的是反方向的,就相當(dāng)于是背著我們的纫事,就會(huì)被背面剔除掉
這個(gè)帖子介紹的還不錯(cuò)
https://blog.csdn.net/july_unity/article/details/79265912
矩陣
雖然看著和多維數(shù)組一樣 但是概念相差很多
轉(zhuǎn)置就是行列互換 在轉(zhuǎn)置就是原矩陣
向量也是矩陣
就是第一個(gè)矩陣的行向量乘上第二個(gè)矩陣的列向量
通俗的說就是第一個(gè)矩陣的第一行分別依次乘上第二個(gè)矩陣的第一列相加仰美,然后再乘第二列,第三列儿礼,就是新矩陣的第一行
然后第一個(gè)矩陣第二行 同上依次
因?yàn)轫樞蚩г樱运麄兎催^來乘答案會(huì)不一樣
但是交換位置,同時(shí)又都轉(zhuǎn)置就是下面的公式蚊夫, 下面的T代表轉(zhuǎn)置
那這種怎么算呢 需要轉(zhuǎn)置后相乘
一般游戲中都是向量乘矩陣
之前有個(gè)函數(shù) mul 乘法 mul(矩陣,向量)诉字,還有個(gè)重載可以傳mul(向量,矩陣)
矩陣在前面需要矩陣轉(zhuǎn)置
單位矩陣就是乘完還是它本身
矩陣和變換
用VS做練習(xí)