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效果提升越來越不明顯)
-
-