【GAMES101】图形学学习记录——光栅化
【GAMES101】图形学学习记录——光栅化我们想要显示的三维模型基本上都是由大量多边形(一般为三角形)组成的,而将这些三角形渲染在屏幕上的过程即为光栅化。 视锥首先,我们要知道我们的屏幕的信息。 fovY:这是一个角度,表示观测点距离平面的竖直范围。 Aspect ratio:宽高比,字面意思,为平面宽和高的比值。 通过下面这张图,我们可以知道以上两个值和之前在投影部分所说物体的t、b、l、r等值的关系,具体如下: tan\frac {fovY}2=\frac t{|n|} aspect=\frac rt屏幕什么是屏幕?在这里,我们将其简单地认为屏幕由一组具有单个颜色的像素排列而成。 光栅化的过程即为决定每一个像素应该显示什么颜色的过程。 视口变换在正交投影时,我们将物体转换到了一个(-1,1)^3的正则立方体中,而在视口变换中,我们要将其显示在我们的屏幕中。 做法为将立方体的XY平面拉伸为屏幕的宽高。 M_{viewport}=\begin{bmatrix} \frac{width}2 & 0 & 0 & \frac{width}2 \\ 0 &...
【GAMES101】图形学学习记录——变换
【GAMES101】图形学学习记录——变换在正式开始学习计算机图形学之前,我们需要了解一些关于线性代数的基础知识。 点和向量的表示我们通常用一个二维列向量来表示一个点的位置或者一个向量,例如: \begin{bmatrix} 1\\ 2\\ \end{bmatrix}矩阵的表示矩阵的表示方式: \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right]图形的变换矩阵和向量之间可以进行加减乘除等运算,这里省略。我们知道,一个图形可以用一系列点来表示。如果我们想要对一个图形进行变换操作,我们只需要让这个图形的所有点移动到我们想要的位置即可。我们可以通过对这些点进行运算来实现这个操作。 镜像变换对于这个变换,我们只需要让x或y值变成相反数。 \left[ \begin{matrix} -x \\ y \\ \end{matrix} \right] = \left[ \begin{matrix} -1 & 0\\ 0 & 1 ...