开始从零开始跟着计划学习

地址:【技术美术百人计划】图形 1.1 渲染流水线

笔记/作业

应用阶段

在CPU上执行,主要操作:

  1. 做数据准备操作,加载mesh、贴图等
  2. 粗粒度剔除,减少不必要计算
  3. 渲染设置(使用哪个纹理、设置使用的顶点着色器、设置使用的片元着色器等...)
  4. 调用图形API进行Draw Call将任务提交到渲染队列中,GPU将会从队列里取出任务进行后续操作

几何阶段

在GPU上执行。进行顶点坐标转换,将物体坐标转换到屏幕坐标

  1. 执行顶点着色器,将物体坐标转换到齐次裁剪坐标下
  2. 进行曲面细分着色器、几何着色器操作(如果有的话)
  3. 在裁剪空间下裁切,去除不需要的顶点,同时在边缘新增必要的顶点?(不可操作,GPU自己执行)
  4. 转换顶点坐标到屏幕空间下(同样GPU自动完成)

光栅化阶段

  1. 设置三角形,根据顶点信息生成每个三角形的边(GPU自动完成)
  2. 三角形遍历,遍历每个三角形所覆盖的片元(GPU自动完成)
  3. Early-Z(如果有的话)。提前计算深度,剔除不必要的片元,减少片元着色器的计算量。如果有需要手动clip掉片元的情况下不适用。
  4. 执行片元着色器(可以不需要)
  5. 各种测试。模板测试、深度测试等...。
  6. 混合。半透明物体颜色和后面物体颜色混合

后处理

对最后的输出帧缓冲进行处理。因为包含额外深度等信息,所以能做的事比常规CV操作多。

  • 描边
  • FXAA、TXAA等后处理进行的抗锯齿
  • bloom
  • 景深