渲染流水线

[TOC]

参考视频:

May百人计划

GAMES101-现代计算机图形学入门

整体概括

渲染管线在计算机图形学当中可以说是必须了解的,在视频当中大致分为 应用阶段几何阶段光栅化阶段逐片元操作后处理

应用阶段

应用阶段主要是 cpu为我们准备一些所需要的数据和一些粗粒度的剔除,主要操作如下

  1. 准备基本场景数据

    • 场景物体数据
      a. 物体变换数据,位置、旋转、缩放
      b. 物体网格数据、顶点位置、uv贴图
    • 摄像机数据(fov near far)
      a. 位置、方向,远近裁切平面
      b. 正交/透视(fov)
      c. 视口比例/尺寸等
    • 光源信息和阴影数据
      a. 光源类型,方向光、点光、聚光(每个灯光种类的一些信息)
      b. 位置、方向、角度等其他参数
      c. 设置阴影:是否需要阴影,光源可见范围是否有可投射阴影的物体、阴影参数,对应光源序号、阴影强度、级联参数、深度偏移、***面偏移等
      d. 逐光源绘制阴影贴图:***面偏移、绘制阴影贴图等
    • 其他全局数据
  2. 加速算法、粗粒度剔除

  3. 设置渲染状态,准备渲染参数

    • 绘制设置 (不同物体 有不同的shader)
      • 合批方式(动态 静态)
    • 绘制顺序(透明和不透明物体的渲染顺序)
      • 相对摄像机距离
      • 材质RenderQueue
      • UICanvas 等
    • 渲染目标(渲染之后把结果输出到 Render Texture 或者 framebuffer
    • 渲染模式(Forward 或者是 Deferred )
  4. 调用DrawCall 输出渲染图元到显卡

    • 顶点数据(位置,颜色,发现,uv坐标等)
    • 其他数据(MVP矩阵、纹理贴图等)

几何阶段

几何阶段主要分为以下几个步骤:顶点着色器(视图变换,顶点着色)、可选顶点处理(几何、曲面细分)、投影(透视、正交)、裁剪(CVV,正面或者背面剔除)、屏幕映射(连续到离散,坐标系差异DX/openGL)

  1. 顶点着色器

    • 模型空间->世界空间->摄像机空间->投影空间(视锥体裁剪)->视口变换 (自动完成)
    • 顶点色
  2. 曲面细分/几何

    • 曲面细分生成更多的顶点
    • 几何可以生成各种形状的图元类型
  3. 投影

    OpenGL(-1 ~ 1 ) D3D(0 ~ 1) w的分量是把物体映射到这个区间内

    • 正交投影
      a. 大小一样
    • 透视投影
      b. 近大远小
  4. 裁剪

    • 裁剪是GPU自动裁剪,不需要我们手动操作
  5. 屏幕映射

    • OpenGL 屏幕坐标 左下到右上
    • D3D 屏幕坐标 左上到右下

光栅化阶段

光栅化主要分为两个阶段 1. 三角形设置 2. 三角形遍历

  1. 三角形设置
    • 设置边界信息
  2. 三角形遍历
    a. 得到三角形的边界信息之后,扫描所有像素,得到所覆盖的三角形所有片元(此刻屏幕上的这个片元可能会有多个三角形的片元重合)
    b. 对三角形内的片元进行插值
  3. 抗锯齿
    a. SSAA 渲染分辨率放大N倍 对放大N倍的buffer下采样
    b. MSAA 光栅化阶段 计算多个覆盖样本
    c. FXAA/TXAA 后处理技术

逐片元操作

​ 逐片元操作主要分为以下几个步骤:片元着色(PS)、 颜色混合 (透明测试,深度测试,模板测试,blending) 参考链接、 目标缓冲区

  1. 片元着色
    • 三个顶点进行线性插值
  2. 颜色混合- 透明度测试
    • 小于透明度阈值的舍弃
  3. 颜色混合-深度/模板测试 参考链接
    • 深度值和深度缓冲做对比,舍弃比较大的
  4. 混合 参考链接 (unity shader 入门精要中也有详细的解答)

后处理

​ 后处理 主要是对输出的缓冲区/渲染贴图进行处理 最常见的 Bloom,HDR,FXAA,边缘检测,运动模糊等等

参考文章

RTR4 第二章 图形渲染管线

GPU Rendering Pipeline——GPU渲染流水线简介

卡通渲染(上):致从没看懂过着色器代码的你

实时渲染中的坐标系变换(5):投影变换-3

实时渲染中的坐标系变换(3):投影变换-1

GLSL-几何着色器详解跟实例(GS:Geometry Shader)

渲染器 2 —— 三角形的光栅化

深度测试/模版测试/透明度测试先后顺序是什么样的?

深入剖析MSAA

其他

个人能力有限,如有不对的地方请及时指出,相互进步,创作不易请多多支持~

图形学碎碎念 文章被收录于专栏

学习图形学

全部评论

相关推荐

点赞 评论 收藏
转发
2 13 评论
分享
牛客网
牛客企业服务