WebGPU学习之路 03

246 阅读1分钟

一、图形流水线基础

image.png

  1. FrameBuffer:帧缓存,负责存储图像的信息,一般32位即4字节表示一像素点信息,像素点构成图像。
  2. PU:处理单元,由下面细分的结构组成,包含可编程流水线单元和不可编程流水线单元。

image.png

  1. OutputMerger:确定哪个像素最后能存活下来,之后将图像输出到显示屏上。
  2. Pixel Shader:也称fragment shader,接收textture即纹理,输出颜色信息,即上色操作。(可编程流水线单元)
  3. Rasterizer:进行光栅化,即根据位置信息填充对应的像素。
  4. Primitive Assembler:图元组装单元,在进行裁剪和光栅化之前,必须将顶点收集到几何对象中。将不在容器内的物体将从场景中剪去。(Clipper)
  5. Vertex Shader:将对象表示从一个坐标系转换到另一个坐标系。(可编程流水线单元)
  6. Input Assembler:提供顶点信息的描述,读取和组装顶点(shader能访问buffer后,可以直接shader读取)。

2000年的GPU流水线

二、逻辑上的模块划分

image.png

三、部署到硬件

image.png

  1. 随着需求的变化,需要vertex shader能接收纹理,需要pixel shader对精度有限制,从而导致两个shader间的差别越来越小,催生出一种unified shader,即可根据需求当作vertex shader or pixel sharder,这就说明两者在硬件上无差别。但在流水线上还是各司其职。
  2. 通过Scheduler来动态分配成pixel sharder or vertex sharders