延迟渲染
延迟渲染(Deferred Rendering)
PASS
- 几何Pass
- 光照Pass
- 透明Pass
核心原理
- 分阶段渲染:将几何处理和光照计算分离为两个独立阶段。
- G-Buffer(Geometry Buffer):在第一阶段将所有几何信息(位置、法线、材质颜色等)存储到多个纹理中,第二阶段基于这些信息统一计算光照。
流程
- 几何阶段:
- 将所有物体的几何信息(位置、法线、漫反射颜色、高光强度等)写入G-Buffer。
- 光照阶段:
- 遍历所有光源,基于G-Buffer中的数据进行光照计算。
- 最终将光照结果合成输出。
优点
- 高效处理多光源:光照计算复杂度为
O(光源数量),与场景复杂度无关,适合大量动态光源的场景。 - 减少重复计算:几何信息只需计算一次,所有光源共享G-Buffer数据。
- 灵活的后期处理:G-Buffer可用于SSAO(屏幕空间环境光遮蔽)、全局光照等后处理效果。
缺点
- 内存占用高:G-Buffer需要存储多个高精度纹理(如位置、法线、颜色等),对带宽和显存要求高。
- 透明物体处理困难:需要额外的前向渲染通道处理透明物体(如玻璃、粒子效果)。
- 抗锯齿实现复杂:传统MSAA无法直接应用于G-Buffer,通常需改用TAA(时间抗锯齿)或FXAA。
延迟渲染
http://hexo.zhywzs.top/posts/6a7cd41960bf/