百人计划
渲染流水线笔记
2021.10.3
应用阶段
CPU职能
准备场景数据:
- 场景物体数据:变换位置,顶点、uv
- 光源:光类型,方向
- 摄像机参数:位置 fov/正交
- 设置渲染状态
- 调用drawcall输出到显存以供GPU使用
- 光源
- 阴影
- 逐光源绘制阴影贴图
粗粒度剔除:
- 裁剪摄像机视锥体之外的带渲染目标
- 八叉树
- bsp树
- k-d树
- bvh盒
渲染设置
- 着色器和合批
- 绘制顺序
- 渲染目标(framebuffer+rendertexture)
- 渲染模式
输出到显存
顶点数据:
其他数据
几何阶段
- 顶点着色
- 可选项点处理
- 投影 (正交无系数,锥体有系数w。使用xyz/w得到屏幕坐标系)
- 剪裁 (裁剪掉屏幕之外的顶点,补充被裁剪的不完整图元的顶点)
- 屏幕映射
光栅化阶段
三角形设置
三角形遍历
- 寻找被覆盖的像素
- 对每一个被覆盖的像素进行线性差值。
抗锯齿
SSAA
MSAA
- 对每个像素设置多个采样点
- 通过覆盖测试和遮挡测试看这个像素是否能够通过
- 通过即为这个像素点属于这个三角形
- 提供着色比例以供参与后面的着色混合。
FXAA/TXAA
逐片元操作
片元着色
颜色混合
目标缓冲区
- framebuffer真缓冲区
- renderbuffer贴图
后处理
bloom(辉光)
HDR
FXAA
景深
边缘检测
模糊
|