前向渲染(Forward Rendering)
在前向渲染中,每个对象会被每个影响它的光源在一个‘pass’中渲染.因此 每个对象可能会被渲染多次,这取决于在这个对象范围内有多少光源
这种方法的优点是快速,也意味着对硬件需求低,此外,前向渲染提供了广泛的自定义”着色模型”,可以快速处理透明效果机制,也支持一些硬件技术比如多重采样抗锯齿(MSAA),等等有些在其他渲染路径上是无法实现的功能,比如对于图形质量有很大影响的延迟渲染路径。
然而他的显著缺点是我们不得不为每个光源付出相对应的渲染开销,也就是说,每个对象被越多的光源所影响,渲染表现的速度就会越慢。有些类型的游戏必需要大量的光源,这样会非常消耗性能,然而如果你能管理好你的灯光数量,那前向渲染路径实际上会是一个非常快速的解决方案。
延迟渲染(Deferred Rendering)
在延迟渲染中,我们延迟了光的着色信息和混合信息直到第一个Pass结束,这个Pass 将每个表面的位置,法线和材质渲染到“几何缓冲区”(G-buffer),作为为一系列屏幕空间纹理,然后我们在Lighting Pass中取出这些信息,进行真正的光照计算。
这种方法优点是光照的着色开销是和屏幕像素数量成正比,而非灯光数量,因此你不用再管控场景灯光数量,某些游戏类型将会是一个显著优势。
延迟渲染路径呈现出高度可预见性的特点,但通常需要较强大的硬件,并且有些移动手机平台对此不支持。
网友评论