回顾与引入
前面学了各种变换。
若要将一个三维的物体变成二维的平面上,需要进行一些变换。(观测变换)
-
我们始终把摄像机的位置移动到一个“经典”的位置,然后把其他所有物体都和相机一起移动。(视图变换)
-
当所有的物体已经有了一个“标准”的变换,可以将物体从三维投影成一个二维。(投影变换)
此时做完观测变换后,所有物体都会在一个[-1,1]3上了。此时就需要让计算机根据这个信息,去“画”就是涉及到了光栅化。
视锥
-
有时候人们更喜欢:垂直视场(fovY)和纵横比(假设对称性,即I=-r,b=-t)
用长宽比和垂直的可视角度来定义一个视锥
aspect ratio(长宽比)
垂直的可视角度(fovY):图中红色线之间的夹角。
光栅化
光栅化的一些定义
把图片画在屏幕的过程,我们就叫光栅化的过程。
本门课上,我们可以认为像素是一个个的小方块,每个方块的颜色是一整个的颜色(即把像素当成最小的单位)
-
像素的索引是(x,y)的形式,其中x和y都是整数
-
像素的索引从(0,0)到(宽-1,高-1)
-
像素(x,y)以(x+0.5,y+0.5)为中心
-
屏幕覆盖范围从(0,0)到(宽,高)
-
与z无关
-
在xy平面上的变换:[-1,1]2到【0,宽】x【0,高】(视口变换)
光栅显示设备
示波器
早期的显示器(CRT)原理和示波器一样。
原理大概是左侧的electron immeter上面会产生很多电子,电子经过加速后,会穿过显示设备,发生偏转打在屏幕上。
早期会用到隔行扫描,就是这一秒处理奇数行、下一秒再处理偶数行这种。
平板显示设备
现在主要的显示设备,主要是LCD。LCD:液晶显示器。
-
原理:通过扭转偏振来阻挡或传输光
-
背光照明(如荧光灯或LED)
-
偏扭的中等强度水平
大概意思就是,光通过这个中间的区域,然后扭转或阻挡关,可以让光的方向从竖直变成水平(右边的两个图就是State打开和关闭的情况对比)
其他
LED:发光二极管
电子墨水屏
三角形光栅化
-
为什么是三角形 最基本多边形 拆分其他多边形
-
独特的属性 保证是平面的 轮廓分明的内部 三角形顶点插值的定义良好的方法(重心插值)
-
输入:投影在屏幕上的三角形顶点的位置
-
输出:近似三角形的像素值集
为了能够得到近似三角形的像素值集,我们需要得到像素点与三角形中心点的关系。其中一个方法就是采样。
采样
所谓采样,就是得到一个函数,输入位置即可得到函数的值。可以理解成把一个函数离散化的过程。
-
抽样函数
-
在一个点上对函数求值就是抽样。
-
我们可以通过采样对函数进行离散化。
-
采样是图形学的核心思想。
-
我们的采样时间(1D),面积(2D),方向(2D),体积(3D)。
采样实现光栅化举例
给定一个三角形,我们需要确定的是那些像素的中心再三角形内。
定义一个函数inside,给定一个三角形和一个屏幕空间中任意的坐标,可得坐标是否在三角形内。
inside函数实现原理就是通过向量的叉乘。
点在边上是属于哪个三角形,是自己定义的,可以处理也可以不处理
光栅化函数的计算方式
(轴向)包围和
无需将整个屏幕都走一遍,只需要在其可能有的区域内(图中的蓝色范围)中,进行光栅化即可。
蓝色区域又称为(轴向)包围和,缩写成AABB。
增量三角形
这种情况比较适合那种比较窄长的三角形(原本没有多少像素,但是包围和认为有很多像素)。
实际的光栅化
可以发现其实实际的像素点根本不是一个方块。
另外有一个现象,右侧图的绿色点相对的密度会比蓝红要高。这是因为人眼对绿色最为敏感。
平时打印的时候,打印的检测系统会进行检测,图片颜色越多,打印的颜色就越黑。而屏幕的rgb则是相反。
下节提示
锯齿、走样问题
总结
今天主要讲的是光栅化的知识。
在上节课中,通过观测变换(视图变换和投影变换),可以将三维的物体转化成二维的图像数据信息。
这节课就是需要将这个信息“画”出来,这就叫做光栅化。
理论上无论是怎样的图形,通过光栅化都能“画”在屏幕中。任何图形都可以分解成由三角形组成,因此课上主要以三角形为例,讲了三角形的光栅化。
三角形光栅化中,最简单的方式就是采样。采样简单来说就是通过一个函数,将图形的位置信息传入,即可得到函数值,这个函数值个人理解就是在计算机中用于“画”的像素信息。
但在实际应用中,光栅化会出现锯齿、走样的问题,下节课的主要目的,就是抗锯齿、防走样。