Unity5 新功能解析--GI(全局光)


http://blog.csdn.net/leonwei/article/details/48009059

 

Unity5帶來的最大的改變就是全新的GI,在烘焙引擎上拋棄了4的beast,使用了虛幻采用的Enlighten,引入了實時的全局光。這里對UNITY5的新的光照系統做一總結.

  • 新加入了一種只用於烘焙的光照類型 Area Light

              面積光的光源有形狀,是一個矩形區域,有位置,有方向,方向是超矩形的一面,矩形的背面沒有光,並且隨距離衰減直到沒有。它用於模擬大量的光源和在一起的效果,如街道,但是因為計算復雜,所以只用於烘焙

  • 全局光照
構成 : 可實時更新的lightmap + 可實時更新的光照探頭(light probe)+ 可實時更新的cubemap(Reflection probe)
實時全局光只實時計算物體之間的bounce light(物體之間來回反射的光)
實時全局光的實現:靜態物體之間的bounce light可以在預先計算階段搞定(light map)
                                     被靜態物體照射到的動態物體,通過實時更新的光照探頭搞定
                                      被動態物體照射到的物體,還不支持
相比UNITY4來講,多出來的實時全局光部分應該是多出了lightmap 光照探頭這些可以實時更新 而不是定死的
如下圖在光源變化下,靜態物體的對地板的反射綠色光也在跟着變化
  
此外UNITY5里面的標准材質的自發光在全局光計算中可以當做光源,即可以照亮周圍物體並產生陰影,這是一個很屌的效果!,如下圖,
,可以調節emission的GI模式,
自發光的GI效果如圖
這可以表現一個很真實的發光體,相信看到這美術同學應該有點小激動吧~
 
 
 
 
    Unity5 的全局光照除了新引入的實時GI之外,也有過去的離線烘焙的方式,或者也可以選擇二者合用的方式(不過這不是一個省效率的方式)
  • 1離線烘焙

 

    將light的Baking設為Baked,標記那些static的物體,在Lighting window中的Baked GI對應的就是烘焙的實時光,所以這是要把Precomputed Reatime GI關閉

 

  • 2實時
   將light的baking設為realtime,標記那些static的物體,在lighting window中將Baked GI關閉,將Precomputed Realtime GI開啟,注意默認Precomputed Realtime GI的resolution並不高,如果想得到比較不錯的效果,可以將它調高。在運行時就可以看到實時的GI效果
 
  • 3 烘焙GI加實時的局部光照
      這可能是更加主要的做法,即static的物件采用離線的烘焙GI,而非static的物件使用實時的局部光照,這需要將light調為mixed,然后將lightmap里面開啟baked gi,而將realtime gi 關閉。
  • 4 烘焙的GI疊加實時的GI,這種做法基本沒什么好處,而且效率也很低,這種組合是將light設為mixed,然后將light setting里面的baked gi和 relatime gi全開啟

  • 通用的GI設置
       通常為了提升間接光照的質量,可以將light里面的Bounce Intensity提高,和lightsetting 里面 general gi的indirect intensity也提高。此外還可以在light setting里面設置天空盒和環境光。
      Unity5的scene視圖里面有多提供了一個視圖Irradiance 來查看動態物體間的間接光照
  • 光照探頭,unity5的關照探頭是為了使動態物體能偶受靜態物體的gi影響,比UNITY4多了光照探頭的信息可以實時更新的,其余的使用設置同4基本是一樣的

  • 反射探頭
       這是UNITY5的實時GI新增的一部分,我們可以在場景的某個區域創建一個Reflection Probe,這點的環境映射信息就會被保存下來,當有動態物體進入的時候,就可以被貼上這個cubemap。如下圖是一個球進入了這個區域感受到了這個點處的環境映射。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM