games101-2 線性代數(圖形學)
阿新 • • 發佈:2021-11-19
1.圖形學需要的基礎
- 數學:線性代數,微積分,統計學
- 物理:光學,力學
- 其他:訊號處理,數值分析
- 一點美學
2 線性代數
1 向量概念
2 vector normalization向量規範化
3 向量加法
向量的加法可以從兩個角度去理解:
- 從幾何的角度去理解:平行四邊形法則和三角形法則
- 座標系中相應的座標相加
將向量表示成座標的形式是非常有助於計算向量的長度的
4 向量的點乘 Dot product
兩個向量的點乘是一個數;
可以快速計算兩個向量之間的夾角;
向量點乘的基本屬性:
在直角座標系中的計算公式如下:
向量點乘在圖形學中的用法:
快速找到兩個向量之間的夾角; 比如在一個向量投影到另外一個向量上什麼樣子的
可以計算兩個向量方向接近程度:根據點乘的結果來判斷是接近和遠離;比如在高光渲染的時候就要用這個知識
向量點乘還可以給出一個前與後的資訊:如果落在了上半圓就是接近,如果落在了下半圓就是遠離。根據點乘的符號來判斷,如果是正的,結果等於1就是相同,如果是-1是相向;
投影-可以將一個向量分解成兩個向量,一個向量平行於第一個向量,另外一個向量垂直於第一個向量;
5 向量的叉乘 Cross product
向量叉乘的結果是一個向量!方向用右手螺旋定則確定(或者左手)
右手螺旋定則:
OpenGL中使用的是左手座標系!
叉乘在圖形學中的意義:
- 判斷左和右
如下圖:判斷b在a的左邊還是右邊
用a叉乘b,得到的結果是正的,說明b在a的左側
用b叉乘a,得到的結果是負的,說明b在a的右側
- 判斷裡和外
判斷P在三角形ABC的內部?
ABXAP,結果是正的,說明P在AB的左側
BCXBP,結果是正的,說明P在AB的左側
CAXPC,結果是正的,說明P在CA的左側
所以P在三角形ABC的內部,
繞的順序是AB-BC-CA,繞向逆時針和順時針,也就是三個叉乘結果要嘛都是正的,要嘛都是負的
這個是三角形光柵化的基礎,要知道三角形覆蓋了哪些畫素,判斷畫素是否在三角形內部;
6 正交座標系
3 矩陣
1 概念
2 矩陣的乘積
3 矩陣相乘的特性
沒有交換律
4 矩陣向量相乘
始終任務矩陣在左邊,向量在右邊
將向量看成是mx1的矩陣
點的變換就是基於這個知識點
5 矩陣的轉置
6 單位矩陣
矩陣的逆