Lecture 1-2:引入

没啥实际内容。 Lect1简要介绍图形学运用,Lect2复习了线代 难道所有课的前两节都是可以跳过的吗
以及官网似乎挂了没法下作业,何意味

Lecture 3:向量,变换与齐次坐标

依旧复习线性代数。讲了线性变化(旋转,拉伸,…)可以用 v=Avv=Av 矩阵乘法表示。非线性变化需要利用齐次坐标来表示(增加一个维度)。

P.S. 只有在仿射变化的时候齐次坐标对应矩阵最后一行才是 0 0 1
逆变换:使用逆矩阵以还原原来的坐标。
运用齐次坐标对应矩阵进行仿射变化时,先运用线性变换再运用平移变换
附加:旋转矩阵的逆矩阵等于转置矩阵(正交矩阵性质)

Rθ1=RθTR^{-1}_θ = R^T_{-θ}

Lecture 4:视图和投影变换,正交和透视投影

三维空间分别按X、Y、Z轴旋转
三维空间分别按X、Y、Z轴旋转

和二维的旋转可以类比。
注意到绕y轴旋转时, sinθ-sinθ的位置不一样。原因:循环对称时z叉乘x得到y(而不是x叉乘z),所以旋转矩阵带负号。

参数指三个向量的xyz值
参数指三个向量的xyz值

由于对相机的变换是先移动到原点再旋转,所以视图变换矩阵是先平移再旋转

Mview=RviewTviewM_{view} = R_{view}T_{view}

RviewR_{view}怎么求:利用旋转矩阵的逆矩阵等于转置矩阵的性质,先求逆矩阵(从世界坐标系旋转到当前相机角度),再转置得到旋转矩阵。

正交投影和透视投影的区别
正交投影和透视投影的区别
Photo
  • 由于沿着-z方向看,这里远处数值小近处数值大(不同于x,y的的左小右大,下小上大)
Photo

正交投影矩阵:平移(右)乘以缩放(左)矩阵。注意到由于变换后范围为(-1,1),所以缩放矩阵的参数为2/(r-l),2/(t-b)和2/(n-f)。
对于此变换造成的拉伸:后续会讲到视口变换。未完待续…
透视投影矩阵的基本思路:先变化为正交投影,再进行正交投影矩阵的变化。

  • 先待定变换矩阵
  • 取远(f)近(n)两个平面,根据相似三角形推出x,y的变换关系,填充一部分变换矩阵
  • 根据远近两个平面上的点z轴不变(夹中间的点的z轴可能会变),列式待定出变换矩阵剩下的部分。
  • 最终得到的矩阵为
[n0000n0000n+fnf0010]\begin{bmatrix} n & 0 & 0 & 0 \\ 0 & n & 0 & 0 \\ 0 & 0 & n+f & -nf \\ 0 & 0 & 1 & 0 \end{bmatrix}

这是由透视投影转换为正交投影的变换矩阵。后续还需要乘以正交投影矩阵得到最终的透视投影矩阵。

感想

难度明显上升,我那可怜的六十几分的线代基础要不够用了… 花了很长时间才能勉勉强强跟上讲的内容,即便如此听完了也还是迷迷糊糊。

Lecture 5:视锥体,光栅化起步

依旧过渡章。补充了上节课没讲到的视场角和宽高比的内容。

大概科普了各类型屏幕的显示原理,三角形光栅化后变为像素的过程(表述不严谨)。总的来说算科普回,没有该死的数学。 光栅化:在屏幕空间的采样

Lecture 6: