Unity渲染路徑比較
阿新 • • 發佈:2019-01-09
1 前向渲染
最常用的渲染路徑。首先基礎場景渲染非透明物體,然後每個光源需要一個pass。同時,也會有很多畫素進行了FS後,被後面的測試拋棄。造成浪費。所以如果一個場景時多光源,效能會有嚴重的損失。
unity的前向渲染目前只許一盞 畫素光源。
好處: 不需要特性,材質很靈活
壞處: 有很多被拋棄掉的畫素也會執行FS,多光源的情況效能下降的厲害。
他的擴充套件有 Z-Pass 第一個pass渲染z-buffer。第二個pass進行比較,防止產生光照浪費。不過現在手機硬體都支援early-z,所以Z-pass不太需要。
2 延遲渲染
在螢幕空間進行渲染。第一個pass把 nomal,diffuse,special,environment等資訊render到一個framebuffer(G-buffer)上,因為一個buffer存不下,所以需要MRT。第二個pass根據這些資訊進行光照。
好處:多光源下 效能也不會下降太厲害。
壞處: 需要MRT的支援。G-buffer會很大。因為要把材質RT,所以材質引數不能太多。
3 延遲光照
基於延遲渲染改進,第一個pass只儲存diffuse special資訊。第二個pass根據這些資訊進行光照。第三個pass在渲染一遍物體,然後跟第二遍pass生成的光照buffer進行混合。
好處: 可以處理多光源的情況,可以讀取材質資訊,可以進行多變。
壞處: 多一個pass
unity推薦延遲光照渲染