美文网首页
渲染管线(Rendering Pipeline)

渲染管线(Rendering Pipeline)

作者: 泠璃 | 来源:发表于2018-06-05 16:48 被阅读0次

1. Application stage 应用阶段

软件执行、应用驱动、CPU运行
碰撞检测、全局加速算法、动画、物理模拟

  • 准备场景数据、模型及光源
  • 剔除(Culling):剔除不可见物体,提高性能
  • 设置渲染状态 材质、纹理、shader的数据
    输出渲染所需的信息,即输出渲染图元(Rendering Primitives)

2. Geometry stage 几何阶段

进行多个多边形和定点的操作

  • 模型变换: 物体坐标系→世界坐标系
  • 视觉变换: 世界坐标系→相机坐标系
  • 顶点Shading: 在不同顶点计算Shading方程,所得结果用于光栅化
    Shading:光线在某个材质上产生的效果
  • 投影
    可视化空间变换至单位立方体(正规可视化空间)
    计算正交投影和透视投影,Z坐标不存储在图像中(存在Z-buffer中)
  • 裁剪
    基本图元的顶点出现在可视空间内,视为有效,可以进行光栅化
    基本图元只有部分顶点在可视空间会被裁剪(由固定的硬件操作)
  • 屏幕映射
    OpenGL的原点在屏幕左下角
    DX的原点在屏幕右上角
    DX10之前的版本,像素的中心坐标为(0,0)
    DX10之后的版本及OpenGL,像素中心坐标为(0.5,0.5)

3. Rasterizer stage 光栅化阶段

接收数据为变换和投影后的顶点及其相应的Shading方程数据
光栅化的目标: 计算覆盖在每个物体上的像素颜色

  • 三角形设置: 三角形表面差异和其他相关数据(由固定的硬件操作)
  • 三角形遍历: 检查每个像素是否在三角形内部
    Fragment在这里产生,通常采用插值法计算
  • 像素Shading: 输入差值Shading的数据,输出一个或者多个颜色用于下一阶段
    可编程控制GPU执行,常用纹理技术
  • 合并: 合并color buffer中的颜色
    可以通过配置产生不同的效果
    Z-buffer解决能见度问题、Alpha通道执行Alpha test、stencil buffer记录已渲染图元的位置

相关文章

网友评论

      本文标题:渲染管线(Rendering Pipeline)

      本文链接:https://www.haomeiwen.com/subject/htbpsftx.html