Skip to content

渲染管线

渲染管线(Rendering Pipeline) 是指:

将 3D 模型转换为 2D 图像并显示在屏幕上的整个过程。这个过程被划分为多个阶段,每个阶段负责不同的任务。 也可以想象为一个流水线,输入的是模型数据,输出的是图像。

固定渲染管线可编程渲染管线是现代图形编程中两种根本不同的架构模式,它们在灵活性、控制粒度和工作流程上存在本质差异。

固定渲染管线

  • 硬件固化:渲染流程由GPU硬件预先固化。
  • 有限配置:通过API参数调整有限功能。
  • 黑盒操作:开发者无法修改内部处理逻辑。
  • 典型代表:OpenGL 1.x、DirectX 7。

可编程渲染管线

  • 软件定义:关键阶段由开发者编写着色器程序控制。
  • 完全可定制:可自由实现任意渲染算法。
  • 透明控制:直接操作顶点/片元处理逻辑。
  • 典型代表:OpenGL 2.0+ (GLSL)、DirectX 9+ (HLSL)、Vulkan/Metal

功能控制对比

顶点处理

能力固定管线可编程管线
坐标变换固定矩阵堆栈 (glMatrix)自定义矩阵运算
光照计算固定Gouraud/Phong模型任意光照模型 (PBR等)
骨骼动画不支持自由实现蒙皮权重
顶点数据固定属性 (位置/法线/UV)任意自定义属性

片元处理

能力固定管线可编程管线
纹理混合固定组合 (GL_COMBINE)任意数学运算
材质系统简单材质参数复杂PBR材质 (金属/粗糙度/环境反射等)
后期效果有限雾效/Alpha测试全屏后处理 (SSR, HDR等)
条件分支不支持完整流程控制 (if/else, switch等)

工作流程

固定管线工作流

可编程管线工作流

性能特性对比

特性固定管线可编程管线
启动开销极低较高(需编译着色器)
运行时效率稳定但固定依赖着色器优化程度
硬件利用率中低(功能未完全利用)极高(可充分发挥GPU能力)
并行处理有限大规模并行 (SIMT架构)
内存带宽需求较低可能较高(大量纹理/缓冲区)

典型场景

固定管线适用场景:

  • 简单2D/UI渲染
  • 老旧硬件支持
  • 快速原型开发
  • 教育演示基础

可编程管线适用场景:

  • 现代3A游戏渲染
  • 基于物理的渲染 (PBR)
  • 复杂后期处理
  • GPU计算 (GPUGPU)
  • VR/AR实时渲染