去年4月,Forward+刚出来的时候,我写过一篇介绍的文章。很遗憾的是,原来的paper只比较了Forward+和传统Deferred,甚至是个没怎么好好优化的Deferred。对于Tiled Deferred(TD)的比较,一直都没见到详细的。今年GDC上,终于看到了一个对Forward+和Tiled Deferred的全面性能对比,包括不同光源数,不同render target(RT)个数和是否MSAA。
别的不说,直接看结论阶段。
算法分析
首先是对Forward+和Tiled Deferred的算法分析,列出可能影响性能的地方。
RT数量对比
G-Buffer包含了多少个render target,也就是用多少带宽,对性能应系那个很大。第一轮是关闭MSAA,三角形数量较多(1.25M个),Forward+和RT数 ...
AMD在7900系列显卡发布的时候同时推出了Leo demo,并说明它不是用近年流行的Deferred框架渲染完成,而是用到了一种叫Forward+的框架。这个框架不需要Deferred的大带宽要求,却仍能实时渲染上千光源。EG2012上有篇新paper叫做Forward+: Bringing Deferred Lighting to the Next Level,讲述的就是这个方法。但目前作者还没有放出该论文的全文,这里我只能通过只言片语和AMD的文档来解析这个神奇的Forward+。
Tiled-based Deferred Shading
在进入正题之前,我们先回顾一下Intel在SIGGRAPH Courses 2010里提到的Tiled-based Deferred Shading。它的算法框架是:
生成G-Buffer,这一步和传统deferred shading一样。
把G-Buffer划分成许 ...