unity內建管線的渲染路徑主要包含了延遲渲染管線和前向渲染管線。(不討論舊版延遲渲染和舊版頂點光照)
unity內建管線的切換可以在graphics setting中更改
也可以在攝像機的設定上更改
渲染路徑的作用:告訴unity,光照是如何應用到unity shader的。
作用在每個物體上一定數量最亮的光(一般4個)逐畫素,而後四個逐頂點,剩餘的sh計算。
當光源有設定rendermode時,important始終為逐畫素計算,not important時,始終為逐頂點或者sh計算。
在shader中,對pass進行標記light model,指定計算何種光源。
forwardbase:應用環境光、主方向光、頂點/sh 光源和光照貼圖。
forwardadd:應用附加的逐畫素光源。
multi_compile_fwdbase 編譯 passtype.forwardbase 所需的所有變體。這些變體處理不同的光照貼圖型別以及啟用或禁用的方向光主要陰影。
multi_compile_fwdadd 編譯 passtype.forwardadd 的變體。這將編譯變體來處理方向光、聚光燈或點光源型別,以及它們帶有剪影紋理的變體。
multi_compile_fwdadd_fullshadows - 與 multi_compile_fwdadd 相同,但還能夠讓光源具有實時陰影。
主要缺點:光源越多,效能越差。假設場景中有n個物體,每個物體受到m個光源的影響,那麼要渲染整個場景,就需要n*m個pass。
所有光源都按畫素進行評估,對多光源的支援在效能上和表現上都好。
延遲渲染下g-buffer中情況
rt0,argb32格式:漫反射顏色(rgb),遮擋(a)。
rt1,argb32格式:鏡面反射顏色(rgb),粗糙度(a)。
rt2,argb2101010 格式:世界空間法線 (rgb),未使用 (a)。
rt3,argb2101010(非 hdr)或 argbhalf (hdr) 格式:發射 + 光照 + 光照貼圖 + 反射探針緩衝區。
主要缺點:不能在硬體層支援抗鋸齒,半透明物體會使用前向渲染。需要額外的記憶體儲存g-buffer。不支援正交投影
要求顯示卡支援mrt、shader model 3.0
參考
unity官方渲染路徑說明
unity官方shader pass-tag說明
unity官方著色器變體和關鍵字說明
unity 不再渲染區域性 unity 渲染第二步
先不要用 unity shader 提供給你的轉換矩陣,看看螢幕上的圖形,你會學到更多。unity 渲染箴言 假設你 create 了乙個 cube,放在預設的位置,預設的 rotation,預設的 scale,此時,create 乙個你自己的 material,再建立乙個你自己的 unlit sh...
Unity渲染路徑
unity支援不同的渲染路徑。您應具體取決於你的遊戲內容和目標平台 硬體來選擇使用哪乙個。不同的渲染路徑有不同的特點和效能特點,主要影響燈光和陰影 如果圖形卡不能處理選定的渲染路徑,unity將自動使用乙個較低保真度的設定。因此,在gpu上不能處理延遲照明 deferred lighting 將使用...
unity渲染路徑
1 deferred shading 有最佳的光照和陰影效果,在場景中存在許多的實時光照時,使用deferred shading也是最佳的方案,之所以叫做deferred 延遲 是因為shading的時機不是發生在第乙個pass的頂點 片元函式內,而是存在延遲,直到第二pass的時候才執行,每個光源...