之前微妙網渲染為大家簡單介紹了一下延遲渲染是什么,今天小編我就繼續給大家分享一下延遲渲染背后的工作原理,幫助大家更好的理解延遲渲染這個技巧。![]() 目前我們看到最終畫面都是2D的,只能看到有限的像素數,理論上我們只要處理(指光照,陰影處理)最終我們可以看到的點的效果就夠了,多余的處理是浪費的。而正常的前向渲染(Forward Shading)流程是把空間的點進行各種剪裁后,進行處理,所處理量遠遠大于我們最終看到的。所以延遲渲染出現了。它先將攝像機空間的點光柵化轉化成屏幕坐標后再進行處理。這樣就能減少處理的次數,從而提高效率。 既然把處理流程放在了后面,那么處理所需要的參數也必須帶到后面的流程。這里使用MRT(multi target render)就很重要,RT占用的顯存越大,對顯卡的的帶寬要求也就越高,DX10支持8個MRT(DX11的MRT數量我沒查到,在DX11的新特征中,也沒有提到增加MRT,所以可能也是8個)。后面的處理至少需要空間位置信息,可以通過Depth(至少16位)獲得,其他可以將法線信息(normal),高光信息(specular),AO系數,diffuse,自發光(emissive),材質編號等信息放入MRT中。 通過本文,相信讀者們對延遲渲染這個渲染技巧的工作原理已經有了初步的了解了。之后微妙網渲染還會給大家繼續分享延遲渲染的具體操作步驟,請大家持續關注哦。 |