4.Resterization 1(Triangle) (三角形光栅化)
4.Resterization 1(Triangle) (三角形光栅化)
- Different raster displays
- Rasterizing a triangle
sometime people prefer:
vertical field-of-view (forY) and aspect ratio (assume symmetry i.e I=-r,b=-t)
即视锥定义需要长宽比和垂直角度
由可视角度和距离即可求屏幕大小
what‘s after MVP(MVP变换)
- model transformation (placing object)
- view transformation(placing object)
- projection transformation(placing object)
canonical cube to screen!(像素是屏幕上规范的正方形)
这里可以暂时抽象认为像素是最小单位
像素被写作(x,y),都为整数,从(0,0)开始,蓝色方块坐标为(2,1)
像素的指数从(0,0)到(width-1,length-1)
像素中心在(x+0.5,y+0.5)
屏幕范围为(0,0)到(width,length)
transform in xy plane:
视口变换
(看不懂的滚回去看第三节!)
小知识:
隔行扫描(先偷懒扫1357…第二次扫2468….)利用了人眼的视觉暂留,提高了扫描的效率
超出人眼视网膜最大分辨率的屏幕被称为视网膜屏幕
LCD(液晶显示器)利用液晶影响光的极化
LED(发光二极管)利用阵列变成屏幕
部分电子书设备(例如kindle)利用电子墨水瓶来控制墨水的朝向
triangle - Fudamental Shape Primitives(三角形是最基本的图形)
- 三角形是最基本的图形,所有图形能拆成三角形
- 三角形一定是平面的,有清晰严格的内外定义区分
- 只需要确定三个点,就可以三角形内部取一个点,控制它到三个点的距离得到一个渐变的过程
a simple approach:sampling(采样)
这里的采样是指利用像素中心对屏幕进行采样,得到每个像素的像素中心是否在图形的内
sample if each pixel center is inside triangle
这里我们定义inside(t,x,y)
{if((x,y)在三角形t内) return 1;else return 0;}
rasterization==sample a 2d indicator function
所以,光栅化则是对2d屏幕进行采样
for (int x=0;x<xmax;++x)
for (int y=0;x<tmax;++t)
image[x] [y]=inside(tri,x+0.5,y+0.5);
白色区域不可能碰到三角形,固不考虑,只考虑三角形的包围盒(bounding box)
初稿完成于2021.4.12 !这里是分割线!