实时渲染——GPU与渲染流水线

Recap
绘制方程(Kajiya)
求解方程的难点:入射光项的计算(间接光照)
离线渲染中的两种方法:

  • 光线跟踪
  • 有限元求解

Real-time Rendering 引入Intro

实时渲染的挑战

  • Time-budget(Time-critical) rendering
    Rendering in a fixed budget of time
  • Rendering very fast:
    Traditional Criteria: >= 30 FPS
    Now >= 60 FPS
    For VR: >= 90 FPS

解决方法

  • Local Shading
    $ L_o(x,\omega _o) = L_i(x,\omega _i)f_r(x,\omega _i \rightarrow \omega _o)cos(\theta _i) $
    去掉积分、去掉间接光照,只考虑主光源
    节省了计算时间,但没有了阴影/间接光照等,视觉不正确,需要使用GI等方法进行修正。
  • Rendering PipeLine
    GeometryEngine SGI(1982)-> Voodoo 3dfx (1996) -> GeForce 256(1999) -> GeForce RTX 4090(2024)

硬件渲染管线

固定渲染管线 fixed-function rendering pipeline

3D model -Transform & Lighting-> Scene Vertices -Rasterizer-> Pixels -Pixel Op-> Color Pixel(Image)

  • Scene Setting
    Transform & Lighting
    Rasterize
    Pixel Op
    1992 IrisGL 标准化的Graphics Language

可编程渲染管线 programmable pipeline

  • 可编程着色器 Programmable Shader
    vertex shader
    fragment shader
    (此时还没有GPGPU(通用GPU))=》CUDA

More Programmability

加入了额外的着色阶段——Geometry Shader 几何着色器
更多的Shader——Tesselation Evaluation Shader 曲面细分着色器

The Latest Pipeline

2018 Nvidia合并几何着色器和曲面细分着色器为Mesh Shader

Graohics APIs

OpenGL

OpenGL ES and WebGL

Vulkan

DirectX (windows only)

Metal (Apple ios only)

Shading Language

RenderMan in Reyes

主流的Shading Language

  • HLSL
  • GLSL
  • CG
  • MSL
  • WGSL
  • SPIR-V Toolchain
  • OptiX(GPU Ray Tracing)

Forward

New Rendering Pipeline in AI Era