在本页阅读全文(共9页)
● 延迟渲染之Deferred shading
最初的延迟渲染主要集中在Deferred shading,为了提高流水线的效率,Deferred shading通过延迟处理的思路,将光照操作的步骤从传统的Pixel Shader前段直接转移到整个流水线后端的MRT(多目标渲染)里。
这简单的一个步骤移动,直接导致了所有像素在统一完成其他一切步骤并实现Z Occlusion Culling之后再集合在一起统一进行关于光照的运算和操作,从而避免了大量的无效光照计算。场景的复杂度越高,Deferred shading所能够带来的效率提升也就越明显。
killzone2中使用的Deferred shading过程
初期的Deferred shading使用幁缓存,将整个光照过程当做一个2D过程来进行处理。虽然Deferred shading的最初形态在今天看来非常原始,而且由于DX9.0C的MRT还不支持MSAA采样导致所有Deferred shading之后的图形都无法支持常规抗锯齿,但在没有early-z culling的当时,Deferred shading是效率最高的光照处理手段,同时他所提出的延迟的处理概念也在很大程度上影响了未来图形界的发展方向。
延迟渲染模式从出现至今已经7年了,这7年里Deferred shading技术有了极大的进步。结合DX10之后越来越明确的并行度设计,Deferred shading透过延迟操作可以完成几乎全部涉及光照的操作,比如全局亮度调节,高动态范围(HDR)调节,复杂多光源漫散射,甚至已经开始尝试处理原来无法涉及的半透明等极为复杂光线关系。
本文导航