实时渲染——GPU与渲染流水线
实时渲染——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
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Derek's Blog!