Deferred 框架下的AA
前面说过Deferred 框架下无法使用硬件AA,这句话不严谨:
- Deferred Shading在G-Buffer之后,物体几何信息全被抛弃了,导致后续每个像素都独立计算,所以不能使用硬件AA;
- 但是:Deferred Lighting,在Shading Pass阶段,物体会被再次渲染一遍,此时打开硬件MSAA,肯定是能用的(尽管光照部分取自lighting Pass阶段得到的texture,没能享受到AA,但对最终结果影响很小)。
所以,总结来看,Deferred Lighting能用硬件AA,而Deferred Shading不能使用!
即便如此,由于硬件AA处理的是primitive的边界,而非真正的“物体边缘”,所以对时间和空间的冲击那是相当巨大。
这一问题在deferred框架下尤其明显,所以各种基于post process的AA方法应声而出!
目前主要的各类Post process AA:
- GPU Gems2 “Deferred Shading in S.T.A.L.K.E.R.” 一章介绍了 Edge AA