计算机图形学-Rasterization

Rasterization: 将投影到屏幕像素

Viewport transform matrix(视口变换矩阵):

M_{viewport} = \left( \begin{array}{} \frac{width}{2} & 0 & 0 & \frac{width}{2} \\ 0 & \frac{height}{2} & 0 & \frac{height}{2} \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} \right)
和为屏幕宽高

视口变换后的图形显示在屏幕屏幕上

  • 直接计算周围像素中心是否在三角形内。判断一个点是否在三角形内有两种方法,一是将点与三角形的三个点链接 ,形成三个小的三角形,计算小的三角形面积和是否等于大的三角形,如果等于就说明在三角形内,否则,不在三角形内。二是,将三角形的边向量和点与顶点连线的向量进行叉乘,叉乘可以判断两个向量的方向关系,如下图所示。若与与符号相同,则点在三角形内,否则,不在三角形内。
  • 这种直接计算还原后的像素显示会有锯齿。


    判断P是否在三角形内

    像素中心在三角形内

    实际像素显示

抗锯齿

反走样:
  • 先是用低通滤波器对三角形进行模糊(卷积)
  • 然后采样,边缘求面积占像素比例


    反走样过程
MASS:

将一个像素分为几个小的像素


原采样点

像素分成2X2后的采样点


Viewing(可见性)

Z-Buffer(解决图形叠加顺序问题)

每个像素用一个数字表示深度,越小离摄像机越近,多个图形叠加时,选择最小的数


Z-Buffer

你可能感兴趣的:(计算机图形学-Rasterization)