大家好~本課程爲“真實感渲染”的線上課程,從0開始,介紹相關的圖形學算法和數學基礎,給出詳細的數學推導、僞代碼和實現代碼,最終帶領大家開發出基於物理的渲染器
線上課程資料:
加QQ羣,獲得ppt等資料,與羣主交流討論:106047770
本系列文章爲線上課程的覆盤,每上完一節課就會同步發佈對應的文章
本課程系列文章可進入索引查看:
真實感渲染系列文章索引
爲什麼要學習本課
- 如何在幾何上表示向量的加法?
- 如何在代數上計算向量的加法?
- 三角函數、向量、矩陣在圖形學中有哪些應用?
主問題:什麼是三角函數
-
對直角三角形而言,下面的三角函數的值分別是多少?
- sinθ
- cosθ
- tanθ
- cotθ
-
對任意三角形而言呢?
-
三角函數在圖形學中有哪些應用?
- 已知三角函數的值後,可以計算出角度:\(\arcsin\frac{1}{2} = 30^o\)
- 已知直角三角形的一邊和一個角度,可以計算另外一邊
主問題:什麼是向量
-
用什麼符號表示向量?
答:使用\(\overrightarrow{a}\)或者粗體a表示;
或者用起點和終點表示:\(\overrightarrow{AB} = B - A\) -
向量有什麼特性?
答:具有方向和長度;
沒有絕對的起點; -
如何用代數表示向量?
答:
-
用什麼符號表示向量的長度?
答:\(\Vert{\overrightarrow{a}}\Vert\) -
什麼是單位向量?
答:長度爲1的向量 -
如何計算一個向量的單位向量(向量正交化)?
答:\(\widehat{a}=\frac{\overrightarrow{a}} {\Vert{\overrightarrow{a}}\Vert}\) -
如何應用單位向量?
答:用來表示方向,如法線 -
如何計算向量的加法?
-
幾何上
答: -
代數上
答:略
-
-
向量的點積的定義是什麼?
答:
-
對於兩個單位向量,點積是多少?
答:\(\widehat{a} \cdot \widehat{{b}} = cos\theta\) -
點積滿足什麼運算法則?
答: -
如何進行點積的代數運算?
答: -
點積在圖形學中有哪些應用?
- 計算兩個向量的夾角
答:通過“兩個單位向量的點積”,得到\(cos\theta\),然後就可以得到夾角。這可以應用於計算光源方向和表面法線的夾角 - 計算一個向量到另一個向量的投影
答:
- 分解一個向量
答: - 決定向量的前/後關係
答:
如上圖所示,如果兩個向量都在一個半圓內,則它們屬於“前”關係(如\(\overrightarrow{a},\overrightarrow{b}\));否則,則它們屬於“後”關係(如\(\overrightarrow{a},\overrightarrow{c}\))
如果兩個向量點積大於0,則\(cos\theta>0\),所以\(\theta \in [0, \frac{\pi}{2})\),它們屬於“前”關係;否則,它們屬於“後”關係
- 計算兩個向量的夾角
-
向量的叉積的定義是什麼?
答:
-
叉積滿足什麼運算法則?
答: -
如何進行叉積的代數運算?
答: -
叉積在圖形學中有哪些應用?
- 構建座標系
答:
右手座標系:
如上圖所示,通過兩個正交的單位向量的叉積來構建座標系第三維的向量 - 決定向量的左/右關係
答:
如上圖所示,假設\(\overrightarrow{a}, \overrightarrow{b}\)在xy平面,如果\(\overrightarrow{a} \times \overrightarrow{b} = +\overrightarrow{z}\),則\(\overrightarrow{b}在\overrightarrow{a}\)的左側;否則在右側 - 判斷一個點是否在三角形內
答:
分別判斷上圖的AB和AP、BC和BP、CA和CP,如果它們叉乘的結果同號,則點在三角形內。
- 構建座標系
結學
- 什麼是向量?
- 向量有什麼特性?
- 點積在圖形學中有哪些應用?
- 叉積在圖形學中有哪些應用?
主問題:什麼是矩陣
-
在圖形學中,矩陣有哪些應用?
答:用於座標變換,如位移、旋轉、縮放 -
什麼是矩陣?
答:可以看成是一個包含數字的數組
-
如何進行矩陣與標量相乘的代數計算?
答:矩陣的每個元素乘以該標量 -
“矩陣與矩陣”相乘有什麼約束?
答: -
如何進行矩陣與矩陣相乘的代數計算?
答:
乘積中的第(i, j)個元素=第一個矩陣的第i行與第二個矩陣的第j列的點積 -
矩陣與矩陣相乘滿足什麼運算法則?
答:不滿足交換律;
滿足結合律和分配律:
-
“矩陣與向量”相乘有什麼約束?
答:矩陣(mxn)乘以向量(nx1) -
如何進行矩陣與向量相乘的代數計算?
-
“矩陣與向量相乘”在圖形學中有哪些應用?
- 變換一個點
答:如將一個點沿y軸鏡像變換:
- 變換一個點
-
什麼是矩陣轉置?
答: -
矩陣轉置滿足什麼運算法則?
答: -
什麼是單位矩陣?
答: -
什麼是逆矩陣?
答: -
如何用矩陣表示向量的點積?
答: -
如何用矩陣表示向量的叉積?
答:
結學
- 什麼是矩陣?
- “矩陣與向量相乘”在圖形學中有哪些應用?
總結
- 回答開始的問題?