Lecture 02 Recap of CG Basics

Telluluu發表於2024-09-01

Lecture 02 Recap of CG Basics

Graphics Pipeline

光柵化、深度測試、Blinn-Phong模型、紋理對映&插值

OpenGL

總結:每一個pass

  • 定義物體、相機、MVP
  • 定義幀緩衝區、輸入輸出紋理
  • 定義Vertex Shader / Fragment Shader
  • 渲染

其他的

  • 多趟pass

    如ShadowMap

Shading Languages

Shader Setup

  • 初始化

    • 建立shader
    • 編譯shader
    • Attach to program
    • 連結
    • Use program

    program由shader連結組成

  • Debuggering Shaders

    • 以前:NVIDIA Nsight
    • 現在:
      • Nsight Graphics 跨平臺,僅限N卡
      • RenderDoc 跨平臺,不限制顯示卡
    • 直接顯示顏色,使用ColorPicker
      • 負數加上offset

Rendering Equation 渲染方程

  • 渲染中最重要的方程

    • 描述光線傳播

      \[L_o(p,\omega_o)=L_e(p,\omega)+\int_{H^2}f_r(p,\omega_i\rightarrow\omega_o)L_i(p,\omega_i)\cos\theta_id\omega_i\\ 分別為outgoing\ radiance,\ emission,\ BRDF,\ incident\ radiance \]

    • 在實時渲染中

      \[L_o(p,\omega_o)=\int_{\Omega^+}L_i(p,\omega_i)f_r(p,\omega_i,\omega_o)\cos\theta_iV(p,\omega_i)d\omega_i\\ 分別位outgoing\ lighting,\ incident\ lighting(from source),\ (cosine-weighted)BRDF\\ visibility \]

      引入了visibility,實時渲染中更關注“發出的光線”

      • Environment Lighting 環境光

        透過visibility,在環境光中,將實際上的光源和能不能看到分開考慮

      • Global Illumination 全域性光照

        GI = 直接光照+間接光照,難點在於間接光照

        實時渲染中一般只考慮One-bounce GI(多幾次bounce效果提升越來越不明顯)

相關文章