经常会遇到有说前向渲染与延迟渲染,但一直不知道到底是什么。摘自: https://zhuanlan.zhihu.com/p/111314574

# 前向渲染

即通用型渲染技术,为图形卡提供几何图形,将其投影并将其分解为顶点,然后将其转换并拆分成片段或像素 它是相当线性的,并且每次将每个几何图形向下通过管道一次以生成最终图像。 即完全依赖于管线

# 延迟渲染

延迟渲染,如字面意义,渲染将延迟一点,直到所有几何图形都通过管道为止。然后通过在最后应用阴影来生成最终的图像。 如图,上图加上了延迟照明,延迟照明可以减少缓冲区的大小.

# 为什么

考虑到照明性能,如果采用普通的前向渲染,那么灯光需要对每个片段执行照明,最终的结果时照明所耗费的性能是极其昂贵的。尤其是当灯光数量非常多的时候

# 延迟渲染补足

延迟渲染是一种非常有趣的方法,它减少了对象数量,特别是减少了总片段数,并在屏幕上的像素上执行了照明计算,从而使用分辨率大小代替了总片段数. 故屏幕上有多少对象都无所谓,他只与你的屏幕分辨率有关

# 如何选择渲染方式

很多动态光源:延迟渲染
缺点:
如果您没有很多灯光或者希望能够在较旧的硬件上运行,则应坚持使用前向渲染,并用静态光照贴图替换很多灯光,结果也是很棒的。