1 光栅化 Rasterization
raster
来自 德语 ,意思是屏幕
,动词化后变rasterize
再名词化Rasterization
,意为光栅化
.- 像素
Pixel
是picture element
,可理解为屏幕最小单位
,为正方形
,颜色为RGB
.
1.1 视口变换 viewport (正则立方体 to 屏幕)
像素指标从(0,0)
到(宽-1,高-1)
,每个像素中心
坐标是(x+0.5,y+.5)
把MVP
变换的正则立方体
(先不管z轴
,只看x
和y
)[-1,1]²
投到屏幕(0×宽,0×高)
,
需要一个视口变换矩阵 viewport
到达让正方形左下角点
在屏幕原点
,右上角点
在屏幕右上角顶点
的效果.
1.2 像素化
1.2.1 三角形构成图像
经过视口变换,图像
已经在屏幕上
了.
现在研究怎么用屏幕表现图像
,也就是屏幕上每个像素值
是多少. 我们认为图像基本单元是三角形
,有了通过像素组成
的单个三角形
,我们可以通过三角形集合
得到各种图像
. (PS. 早期的电视也是用CRT
通过打电子到屏幕
来显示画面)
- 用三角形是因为
- 三角形是
最基础多边形
- 三角形
三点在一平面
- 方便判断
点在三角形内外
- 方便
重心插值
1.2.2 三角形离散化
所以换句话说,就是怎么在屏幕画三角形,即 Rasterizing Triangles into Pixels
.
采样近似
,用inside函数
判断像素点是否在三角形内
- 伪代码
1.2.2.1 叉乘判断点是否在三角形内
1.2.2.2 三角形像素化使用包围盒
只遍历AABB盒子,避免计算量过大
1.2.3 效果
大概像个三角形,但是有锯齿 Jaggies!!!
- 真实例子: 手机屏幕
总结: MVP变换后viewport变换,所以是MVPV
变换,然后光栅化
,但会出现锯齿!!
2 反走样 Antialiasing
采样
(sampling
) 会产生 瑕疵 artifact
,如
锯齿 Jaggies
空间摩尔纹 Moire
欠采样风扇倒转 Wagon wheel effect
时间- 本质:
信号变化过快(高频),采样速度跟不上(低频)
.
2.1 提前滤波 Pre-Filter
滤波---采样
效果
可以看见在滤波模糊处理后再采样,图像的锯齿少了很多.那么具体该怎么滤波
呢?原理是什么?
2.2 滤波原理
2.2.1 频域与傅里叶变换
根据傅里叶变换
,周期函数,比如方波
可以分解为频率不同
的余弦函数
,如下图
- 空域到频域
F ( ω ) = ∫ − ∞ ∞ f ( x ) e − 2 π i ω x d x F(\omega)=\int_{-\infty}^{\infty} f(x) e^{-2 \pi i \omega x} d x F(ω)=∫−∞∞f(x)e−2πiωxdx - 频域到空域
f ( x ) = ∫ − ∞ ∞ F ( ω ) e 2 π i ω x d ω 欧拉公式 e i x =