真實感渲染:變換(二維與三維)
大家好~本課程為“真實感渲染”的線上課程,從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的仿射變換?
答:
- 用齊次坐標后如何修改?
答:
總結
- 請總結本節課的內容?
- 請回答開始的問題?
浙公網安備 33010602011771號