1. 程式人生 > >Unity優化大全(八)之 GPU-Ligh和其他

Unity優化大全(八)之 GPU-Ligh和其他

  延遲光照是一種當前最高階的能實現光線和陰影保真的渲染路徑 

  • 對於能影響任何物體的光線數量沒有上限
  • 完全採用以每畫素的方式評估光線,這等於意味著全部將以正常貼圖的方式正確的和物體互動 
  • 所有光線都能擁有資訊快取
  • 所有的光線都能產生陰影

      延遲光照的優點:

  • 光照的開銷與螢幕的光線尺寸成正比,不用擔心光線所照射的物品的數量,少量光線等價於廉價的花費
  • 一致性,所有的光線的光照採用按畫素為計算分割單位來計算。比如,不會有在大規模三角形情況下光照計算使計算效能發生崩潰的情況發生。

      延遲光照的缺點:

  • 沒有實時抗鋸齒支援
  • 延遲光照不能處理半透明物體,也不能用在哪些使用前向渲染的物體之上
  • 有限的光照模式支援(Blinn-Phong)。所有光照以同樣的方式計算,你不能夠在不同的物體上採用完全不同的光照模式
  • 沒有對接收陰影特徵的支援和對光線遮罩剔除有限的支援

    延時光照的需求

  • 需要Unity專業版
  • 顯示卡支援Shader Model 3.0(或更高),深度紋理渲染和雙面模板緩衝特性。許多2004年後的顯示卡都支援:如Geforce Fx或更高,Radeon X1300或更高 Intel 965/ GMA X3100 或更高
  • 目前在移動平臺不支援。

   當延遲光照生效時,在Unity中發生的渲染過程如下(重點)

  1. 基本渲染:被渲染的物件產生帶有深度,法線,和反射量的螢幕空間緩衝
  2. 光照渲染:使用上一步的緩衝計算出光照。結果放入另一個螢幕空間快取
  3. 最後渲染:物體再次渲染。取來已經計算好的光線和顏色紋理混合在一起,然後再加上環境光以及散射光照。

      不能採用延遲光照技術的帶陰影的物體在延遲光照渲染完後使用前向渲染路徑處理。

Light:

       簡單瞭解了相機的幾種渲染方式後,我們來談談常用的三種燈光:Directional Liht(平行光),Ponit Light(點光源),Spot Light(聚光燈)。然而他們都具有Light Mode(光照模式),auto,Important,Not Important.第二種和第三種分別是畫素光源和不是畫素光源,但是在這裡要注意的是auto,但當在Edit->Project Setting->Quality中設定的畫素光源大於已經使用的畫素光源,此時的auto才是畫素光源,另外還要注意的是只有平行光應該是逐畫素(Important)的,其他所有都應該是逐頂點的,當然,這取決於遊戲並且

畫素光源更耗效能!接下來會詳細講解!

  Deferred Lighting 

 當沒有任何的燈源,執行結果如圖所示: