一、将标准立方体投影到屏幕(Canonical Cube to Screen)
(1)在经过第四讲中的MVP操作之后,我们需要将这个标准立方体投影到屏幕上。
(2)屏幕和光栅
①屏幕具有以下特点:
- 是一组像素。
- 数组的尺寸就是分辨率。
- 是光栅显示的一种形式。
②Raster是德语里的屏幕的意思。光栅化指在屏幕上绘画。
(3)像素
①像素是具有均一颜色的小方块,该颜色是由红蓝绿的混合而得。
(4)将标准立方体投影到屏幕
①该操作与z轴无关。
②将[-1, 1]之间的图形变换到[0, width]x[0, height],变换矩阵如下图。
二、光栅显示设备
(1)介绍了各种显示画面的光栅显示设备。
①示波器
②电视
③LCD液晶显示器(计算器,手机等)
④LED发光二极管
⑤电子墨水屏(kindle)
三、光栅化(Rasterization)
(1)三角形(triangle)
①三角形是最基本的多边形,其余多边形均可拆分成三角形。
②三角形特征:
- 三角形必定在同一平面上。(例:正方形沿着对角线对折,就分别在两个平面上了)
- 容易定义内外。
- 根据三角形三个顶点和内部任意一点的属性,可以得到整个三角形的属性变化情况。(重心插值)
(2)判断边缘像素的值
①如图所示,左侧的红色三角形占据了一个位置,在三角形的边附近,有部分像素点被切割成了两份,下节将介绍如何判断这些像素点是否属于三角形。
(3)采样(sampling)
①目的是判断像素点与三角形的位置关系,从而确定边缘像素点的属性。像素点的中点如果在三角形内,则该像素点在三角形内,否则在三角形外。
②伪代码形式
③如何判断点与三角形的位置关系?
- 将三角形的每个顶点都分别与该点组成向量,然后进行叉乘,仅当三次叉乘的结果同个方向时,该点在三角形内。(例如按照逆时针方向,做三次叉乘操作:向量P0Q与P0P1叉乘、向量P1Q与P1P2叉乘、向量P2Q与P2P0叉乘)
- 若该像素点恰好落在边缘上,则根据自己的规则判断在内还是在外。
四、实际成像设备的光栅化
(1)真实LCD屏的像素
(2)打印设备的像素点分布情况
五、锯齿
(1)得到每个点跟三角形的位置关系后会得到下面这张图。
(2)将这些像素点全部上色后,会发现存在锯齿,后面的课程将介绍如何抗锯齿。