光栅化
绘制在屏幕上;
宽高比=ratio
视角:field-of-view上边中心到下边中心之间的夹角;
什么是屏幕?
可以看作像素的二元数组,分辨率代表像素个数;
1280*720
典型的光栅成像设备。
raster屏幕
rasterize光栅化:绘制到屏幕上
屏幕左下角是原点。
像素的
视口变换
将(-1,1)立方体变换到屏幕空间。变换矩阵
rasterize triangles into pixels
早期的CRT阴极射线管扫描的方式,打到屏幕上;
然后隔行扫描来减少工作量,利用人眼视觉暂留感知动画原理。这个方法目前还用在视频压缩中。
LCD液晶显示器
LED发光二极管
判断像素中心点和三角形位置关系
采样
确定像素中心点在不在三角形内,
抗锯齿/反走样
aliasing
动画:就是时间中的采样
频域(傅里叶变换)
任何一个函数都可以表示成三角函数和常数的形式近似代替。
如果采样的频率比实际的频率低,那么就会出现走样的现象。
这个图还可以这样理解:采样时候采用的低频,那么结果就是原本的图像和低频的信号相同了,,,
通常一个图像都是低频信号,然后在变换剧烈的地方是高频信号。
右图横竖线代表的是图像在边界;默认情况下,代表图像边界平铺展开相同的图片上下左右。但是一般边界都是不对称的,所以是高频的剧烈变换信号。横竖线就代表的高频信号。
过滤=卷积
卷积理论:
过滤相当于空间域上的卷积;
这个地方如何理解这个卷积核呢?
~~可以将这个卷积核看作划定了当前像素周围的一个圈圈,内部做了平均,这可不就是模糊化处理了么,当这个圈圈越小,越接近本身原来的值,圈圈越大,当大到超过图像大小,结果就会所有的模块都进行平均。
这个图片讲述了采样相当于在频域上的重复。
走样的根本原因在于,频域上的重叠。
如何应对走样问题?
1、增加采样率
2、抗锯齿。
在repeating之前先将频域变得narrow
,也就是先模糊再采样,
MSAA现今常用的反走样方法,这个是对于每个像素内再细分采样点。
z-buffer
画家算法
1、首先存储每个像素的z值,2、同步生成两个东西。
框架缓冲存储彩色信息,深度缓冲存储深度信息,维护遮挡信息。
流程:
设置为无穷远
for(each Triangle)
for(each sample(x,y,z)in T)
if(z<zbuffer[x,y])
framebuffer[x,y]=rgb
zbuffer[x,y]=z;
这里并没有排序,所以花费的时间就是O(n),一直在对每个像素求最小值。
msaa在z-buffer时候是对每个采样点记录一个深度。