延迟渲染(Deferred Shading)

 

最近看了延迟渲染的资料,在这里做些笔记。

1、什么是延迟渲染。

       传统的渲染过程通常为:1)绘制Mesh;2)指定材质;3)处理光照效果;4)输出。传统的过程Mesh越多,光照处理越费时,多光源时就更慢了。

      延迟渲染的步骤:1)Pass0先不做光照处理,将Mesh的Position信息和Normal信息绘制到纹理(RenderTargets,D3D支持多向输出);2)Pass1仅绘制屏幕大小的一个四边形,利用之前得到的Position纹理和Normal纹理对有效地区域选择性地进行光照处理,再输出最后的图像。

     分析:由于延迟渲染将光照的处理量由空间转换到了平面,减少了光照等效果的计算量,提高了绘制速度,对多光源的绘制优势更为明显。

     缺点:1)无法处理透明物体;2)仅对多光照计算的绘制效果明显。

     以下是RenderMonkey中的截图,上方为Pass0绘制出的Position和Normal纹理效果。下方是绘制屏幕大小的多边形并根据上两个纹理信息绘制出的最后光照效果。                  

延迟渲染(Deferred Shading)_第1张图片


你可能感兴趣的:(延迟渲染(Deferred Shading))