GAMES101-现代计算机图形学学习笔记(05)
Lecture 05 Rasterization 1 Triangles
原课程视频链接以及官网
b站视频链接: link.
课程官网链接: link.
视图/摄像机变换
确定投影范围
上一节说了投影实质上是通过一个长方体(正交投影)或者视锥(透视投影)限定一个范围,然后把范围内的坐标投影在二维空间上,所以这里涉及到了如何为不同的投影方式确定范围。
正交投影
正交投影比较好理解,即如何定义一个长方体,我们只需要知道高,宽和深坐标。所以需要的参数是height_start,height_end, width_start,width_end, znear(近平面), zfar(远平面)六个参数
透视投影
透视投影需要定义的范围是一个视锥,而一旦确定了视锥就可以通过上文的l逻辑来构造透视投影矩阵,范围如图所示:
我们这里从二维平面来讨论构建透视矩阵需要哪些参数,先把视锥往zoy平面压平,然后只取视锥的上半部分,结果如下图所示:
fovY表示视野角度,同时已知近平面深度为n,远平面深度为f,宽高比为aspect,所以可以通过相似三角形和角度关系求得:
tan f o v Y 2 = t ∣ n ∣ \tan \frac{f o v Y}{2}=\frac{t}{|n|} tan2fovY=∣n∣t
aspect = r t → r = a s p e c t ⋅ t \text {aspect}=\frac{r}{t} → r= {aspect} \cdot {t} aspect=t