渲染路径
前向渲染(Forward Rendering)
前向渲染是大多数引擎使用的标准,即用型渲染技术。(Unity默认渲染路径方式,Unreal为Deferred Rendering)
它的流程是给定一个几何体,引擎对其进行从顶点到像素着色器的一系列计算,然后输出到最终的图像缓冲区。场景中有多个几何体时,引擎就是对其挨个进行渲染,完成一个再继续下一个。
它是相当线性的,并且每次将每个几何图形向下通过管道一次以生成最终图像。
延迟渲染(Deferred Rendering)
先把几何体的信息都渲染到二维空间中(G-Buffer),然后把G-Buffer整体进行光照计算,G-Buffer中存在的信息都是会最终呈现在屏幕上的,不会有无效计算。
应用场景:光照数量较多,着色模型较少,半透明物体较少等……
缺点:
- 此过程需要具有多个渲染目标的显卡。旧显卡没有此功能,因此无法使用。
- 它需要更高带宽。G-buff的原因,延迟渲染需要大量缓冲区,旧的显卡可能也无法处理。
- 不能使用透明对象。(可以配合前向渲染结合在一起,解决此问题。)
- 没有抗锯齿。但也有解决方案:边缘检测,FXAA。
- 除非您使用对延迟渲染的修改称为Deferred Lighting,否则仅允许一种类型的材料。
- 阴影仍然取决于灯光的数量,延迟渲染无法解决此问题。