1. 程式人生 > 其它 >games101-2 線性代數(圖形學)

games101-2 線性代數(圖形學)

原文地址,侵刪

1.圖形學需要的基礎

  • 數學:線性代數,微積分,統計學
  • 物理:光學,力學
  • 其他:訊號處理,數值分析
  • 一點美學

2 線性代數

1 向量概念

2 vector normalization向量規範化

3 向量加法


向量的加法可以從兩個角度去理解:
  • 從幾何的角度去理解:平行四邊形法則和三角形法則
  • 座標系中相應的座標相加
    將向量表示成座標的形式是非常有助於計算向量的長度的

4 向量的點乘 Dot product

兩個向量的點乘是一個數;

可以快速計算兩個向量之間的夾角;
向量點乘的基本屬性:

在直角座標系中的計算公式如下:

向量點乘在圖形學中的用法:

快速找到兩個向量之間的夾角; 比如在一個向量投影到另外一個向量上什麼樣子的

可以計算兩個向量方向接近程度:根據點乘的結果來判斷是接近和遠離;比如在高光渲染的時候就要用這個知識

向量點乘還可以給出一個前與後的資訊:如果落在了上半圓就是接近,如果落在了下半圓就是遠離。根據點乘的符號來判斷,如果是正的,結果等於1就是相同,如果是-1是相向;



投影-可以將一個向量分解成兩個向量,一個向量平行於第一個向量,另外一個向量垂直於第一個向量;

5 向量的叉乘 Cross product

向量叉乘的結果是一個向量!方向用右手螺旋定則確定(或者左手)

右手螺旋定則:
OpenGL中使用的是左手座標系!




叉乘在圖形學中的意義:

  1. 判斷左和右
    如下圖:判斷b在a的左邊還是右邊
    用a叉乘b,得到的結果是正的,說明b在a的左側
    用b叉乘a,得到的結果是負的,說明b在a的右側
  2. 判斷裡和外
    判斷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 單位矩陣

矩陣的逆

7 向量的乘積的矩陣形式