文章目录
本课的主题是三角形的光栅化的基本原理和相关介绍
前一部分是接上节课的透视投影的剩余部分
`提示:这是第一块最重要的部分
一、透视投影和正交投影的转化(续)
1.定义视锥
首先给近平面定义一个宽度和高度,就有了一个宽高比(可以代表一个看到的区域)
两条红线中间是垂直可视角度(fovY)
并且可以通过宽高比和垂直可视角度还可以推出水平可视角度
== fov:视场角 ==
补充理解的例子:
在近距离拍摄时,会用到广角(可视角度会变得很大)
而在距离很远时,就会向正交投影趋近
2.从fovY和aspect到近平面的原始信息
将屏幕放在一个中心对称的位置
n(near)是到近平面的距离,取绝对值是因为看向-Z方向(可以自己在相机参数上修改)
t是平面半高,根据需求可变化
fovY/2是垂直可视角度的一半
r是屏幕的宽
二、Canonical Cube to Screen
MVP后做什么?
recall:
1.屏幕是什么?
像素点组成的数组
数组的大小(像素的多少):分辨率
一个典型的光栅成像的设备
Raster是德语里的屏幕
Rasterize就是把东西画在平面上,即光栅化
像素的概念在本课中简化为一个内部颜色不会发生变化的小方块,它就是最小单位
颜色是RGB的组合
2.定义屏幕空间
像素坐标写成在(x,y),用整数表示
所有像素的范围(0,0)–(width-1,height-1)
像素的中点表示为(x+0.5,y+0.5)
屏幕覆盖范围:(0,0)–(width,height)
3.视口变换
先忽略z,然后映射标准立方体到屏幕空间上
转换矩阵:
·高、宽除以2得变化的倍数,这个倍数作用于[-1-1]2标准立方体
·width/2宽度变,height/2高度变
·1是不变
·平移是因为要将原来(0,0)中心移动到屏幕空间位置
现在就可以在屏幕中得到一张二维图片了
三、Drawing Machines
CNC Sharpie Drawing Machine
Laser Cutters
四、Different Raster Displays
Oscilioscope示波器
Cathode Ray Tube
以前的电视CRT——阴极射线管
Raster Scan——隔行扫描(利用人眼视觉暂留现象)
·如今的部分视频压缩仍然沿用这种思想,但可能会造成画面撕裂
Frame Buffer: Memory for a Raster Display
Flat Panel Displays
视网膜屏幕:屏幕的分辨率高于视网膜的分辨率
LCD (Liquid Crystal Display) Pixel
液晶通过自己的不同排布,影响光的极化(偏振方向)
LED Array Display
Light emitting diode array(发光二极管)
Electrophoretic (Electronic Ink) Display
墨水屏,如kindle
像素翻转
缺点:刷新率低,翻页慢
五、光栅化
1.为什么是三角形
(1)是最基础的多边形
·任何其它图形都可以拆成多边形
(2)一些独特的性质
·一定是一个平面
·内外定义清晰
·定义三个顶点即可在三角形内做渐变
问题: 判断像素与三角形的关系(中心点)
2.Sampling(采样)
2.1相关概念
给出连续函数,求不同位置的值(即函数的离散化)
利用像素中心对屏幕空间进行采样
采样是图形学中的一个核心概念
可以采样时间(1D)、面积(2D)、方向(2D)、体积(3D)等
2.2定义Binary函数
x+0.5是像素中心点
2.3回忆:Q点是否在三角形内?
叉积!!!
全正或者全负则在内
2.4如果点在三角形边上?
要么不做处理
要么特殊处理
也有特殊规定,如OpenGL中,左、上在内,右、下在外
2.5需要检查屏幕上的所有像素吗?
Bounding Box(包围盒)
对光栅化的一种加速
从最左开始
六、对实际屏幕的光栅化
Bayer Patten: 绿色点多于红色和蓝色点(人眼对绿色最敏感)
彩色打印机:减色系统
下节预告:抗锯齿,反走样