真實感渲染:變換(二維與三維)
大家好~本課程為“真實感渲染”的線上課程,從0開始,介紹相關的圖形學演算法和數學基礎,給出詳細的數學推導、虛擬碼和實現程式碼,最終帶領大家開發出基於物理的渲染器
線上課程資料:
加QQ群,獲得ppt等資料,與群主交流討論:106047770
本系列文章為線上課程的覆盤,每上完一節課就會同步釋出對應的文章
本課程系列文章可進入索引檢視:
真實感渲染系列文章索引
回顧相關課程
- 什麼是矩陣?
為什麼要學習本課
-
3D中物體有哪些變換?
答:平移、旋轉、縮放 -
演示相關的變換
-
3D到2D的投影需要進行變換
主問題:什麼是2D變換
-
如何進行縮放?
-
縮放矩陣是多少?
答: \( \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \) -
如何進行反射?
- 反射矩陣是多少?
答: \( \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \)
- 反射矩陣是多少?
-
-
如何進行旋轉?
預設為繞著原點(0, 0)逆時針旋轉- 旋轉矩陣是多少?
\( R_\theta = \begin{bmatrix} ? & ? \\ ? & ? \end{bmatrix} \)
答:\( R_\theta = \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} \)
- 旋轉矩陣是多少?
推導過程如下圖所示:
通過變換(1,0)點,可以得到矩陣的A、C值:
同理,通過變換(0,1)點,可以得到矩陣的B、D值
-
什麼是線性變換?
答: -
縮放和旋轉是否屬於線性變換?
答:是 -
如何進行平移?
- 它的表示式是什麼?
答:
- 它的表示式是什麼?
- 如何進行平移?
- 能夠得到2D的平移矩陣嗎?
答:不能 - 平移屬於線性變換嗎?
答:不屬於
- 能夠得到2D的平移矩陣嗎?
主問題:什麼是齊次座標
為什麼要引入“齊次座標”
-
如何才能統一縮放、旋轉、平移為都使用一個矩陣來變換?
答:引入齊次座標 -
什麼是齊次座標?
答: -
向量+向量=?
答:向量 -
點-點=?
答:向量 -
點+向量=?
答:點 -
\( \begin{bmatrix} x \\ y \\ w \end{bmatrix} = ? \\ 其中:w \neq 0 \)
答:
\( \begin{bmatrix} x \\ y \\ w \end{bmatrix} = 2D 點: \begin{bmatrix} \frac{x}{w} \\ \frac{y}{w} \\ 1 \end{bmatrix} \) -
點+點=?
答:因為相加的結果經過上面的變換後,可變換為點,所以相加的結果為點 -
用加了齊次座標的矩陣來表達平移的表示式是什麼?
答:
主問題:更多的2D變換有哪些
-
什麼是仿射變換?
答: -
用齊次座標後如何修改?
答: -
用齊次座標後,縮放、旋轉、平移的矩陣是什麼?
答: -
什麼是逆變換?
答: -
如何進行組合變換?
- 如何進行下圖的變換?
答:有兩種方式:先位移再旋轉和先旋轉再位移
- 如何進行下圖的變換?
變換的順序對結果有影響!
這裡應該使用先旋轉再位移,表示式為:
- 如何進行組合變換?
-
如何提高效能?
答: -
如何繞一個點旋轉?
答: -
表示式是什麼?
答:
-
主問題:什麼是3D變換
-
什麼是3D的齊次座標?
答: -
\( \begin{bmatrix} x \\ y \\ z\\ w \end{bmatrix} = ? \\ 其中:w \neq 0 \)
答:
\( \begin{bmatrix} x \\ y \\ z\\ w \end{bmatrix} = 3D 點: \begin{bmatrix} \frac{x}{w} \\ \frac{y}{w} \\ \frac{z}{w} \\ 1 \end{bmatrix} \) -
什麼是3D的仿射變換?
答:
- 用齊次座標後如何修改?
答:
總結
- 請總結本節課的內容?
- 請回答開始的問題?