一、图形流水线基础
- FrameBuffer:帧缓存,负责存储图像的信息,一般32位即4字节表示一像素点信息,像素点构成图像。
- PU:处理单元,由下面细分的结构组成,包含可编程流水线单元和不可编程流水线单元。
- OutputMerger:确定哪个像素最后能存活下来,之后将图像输出到显示屏上。
- Pixel Shader:也称
fragment shader,接收textture即纹理,输出颜色信息,即上色操作。(可编程流水线单元) - Rasterizer:进行光栅化,即根据位置信息填充对应的像素。
- Primitive Assembler:图元组装单元,在进行裁剪和光栅化之前,必须将顶点收集到几何对象中。将不在容器内的物体将从场景中剪去。(Clipper)
- Vertex Shader:将对象表示从一个坐标系转换到另一个坐标系。(可编程流水线单元)
- Input Assembler:提供顶点信息的描述,读取和组装顶点(shader能访问buffer后,可以直接shader读取)。
2000年的GPU流水线
二、逻辑上的模块划分
三、部署到硬件
- 随着需求的变化,需要
vertex shader能接收纹理,需要pixel shader对精度有限制,从而导致两个shader间的差别越来越小,催生出一种unified shader,即可根据需求当作vertex shaderorpixel sharder,这就说明两者在硬件上无差别。但在流水线上还是各司其职。 - 通过
Scheduler来动态分配成pixel sharderorvertex sharders。