图形流水线
显示器成像的原理

显示器由数百万个像素点(Pixel)组成。每个像素通常包含三个分量-红R绿G蓝B。通过控制这三个子像素的亮度组合,可以显示出各种颜色。
每个分量可以用数字表示,最常见的是用8个进制位来表示,数字越大亮度越高。现在也有每个分量用 10 位、12 位、16 位等更高的位数来表示。
三个分量组合之后能表示256 * 256 * 256=16777216种颜色。
帧缓冲

帧缓冲frame buffer,内存的一块区域,与显示器上显示的每个像素是一一对应的。
- 一个字节代表一个颜色分量:8位是一个字节(每个分量可以用数字表示,最常见的是用8个进制位来表示)。帧缓存里每一个字节表示一个像素的一个分量,连续排列。
- 四个字节代表一个像素:在帧缓存里每32位(4个字节)来表示一个像素。RGB(24位,3个字节) +一个表示透明度的Alpha(8位)。输出到显示器的时这个信息会被忽略。
成像的流程
CPU/GPU生成图像数据,存入帧缓存。显卡读取帧缓存,转换为视频信号。显示器接收信号,控制每个像素的亮度与颜色。人眼感知,形成完整画面。

显卡
显卡负责把帧缓存的内容输出到显示器上,或者对帧缓冲上的内容进行处理。

显卡的基本结构
显示输出端口,连接到显示器。显示电路,负责把帧缓存转成显示输出的信号。

计算处理作用
处理器(PU)能在大量数据上执行同样的操作,也就是GPU。对每个像素做计算处理,如把显示的图像亮度翻倍,即RGB每个分量都乘2。处理单元根据是否可编程,分为如下两类:
- 固定流水线单元:Fixed-pipeline Unit,算法的操作固定,只需要设置不同的参数就能达到目的。
- 可编程流水线单元:Programmable Pipeline Unit,算法的操作灵活多变,可以挂上一个程序(shader,着色器)。