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

本文探讨了在Deferred Rendering框架下如何处理反锯齿和半透明物体的挑战。硬件AA在Deferred Lighting中可以使用,但对 Deferred Shading无效。文章列举了多种基于Post Process的AA方法,如FXAA、MLAA等,并指出FXAA因其效率和效果而受欢迎。处理半透明物体通常需要额外的Forward Rendering管线,但KlayGE 4.0引擎提出了一种妥协光照正确性的方法,通过调整Cull Mode和透明度阈值来减少内存和带宽消耗。QQ飞车采用了类似的技术,将透明度阈值设为75%。
最低0.47元/天 解锁文章
997

被折叠的 条评论
为什么被折叠?



