计算机图形学-Rasterization

Rasterization: 将[-1, 1]^3投影到屏幕像素

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)
widthheight为屏幕宽高

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

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


    判断P是否在三角形内

    像素中心在三角形内

    实际像素显示

抗锯齿

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


    反走样过程
MASS:

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


原采样点

像素分成2X2后的采样点


Viewing(可见性)

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

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


Z-Buffer
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容