Lighting overview

原文鏈接:https://docs.unity3d.com/Manual/LightingInUnity.html


Lighting 概覽

      爲了計算一個三維物體的shading, Unity需要知道照射到物體上光線的亮度,方向和顏色.


       這些屬性由場景中的Light對象提供. 不同類型的Light根據指定的顏色以不同的方式發光;有些光從光源發出後,亮度隨距離增加而減弱,並且光線從光源到物體的角度也會不一樣.不同類型的光源的詳細介紹參考鏈接:Types of light.
       Unity能爲不同的用途用不同的方法計算複雜、高級的光照效果.

選擇一個光照技術

       在unity中光照基本上可以被分爲'realtime'或者'precomputed', 兩種技術也可以混用,以創造身臨其境的光照場景.這部分內容會簡單介紹這兩種技術之間相對的優點以及各自的性能特徵.

realtime lighting

      默認情況下,unity中的 directional, spot 和 point三種light是realtime類型的.也就是說它們向場景中發射直射光,並且每幀都會更新.當lights和GameObjects在場景中移動時,光照會立刻更新.可以同時在場景和game視圖中觀察到這一點.


       只有realtime light時的顯示效果.注意由於沒有反射光導致陰影是完全黑暗的.只有落入spot light視錐範圍內的面被照亮.

      Realtime光照是場景中最基礎的光照對象,照亮移動中的角色或其他物體時非常有用.但是僅僅使用realtime lights本身時,光線是不會反射的.爲了用 global illumination技術創造出更加真實的場景,我們需要啓用Unity的 precomputed光照方案.

Baked lightmaps

       Unity能夠計算複雜的static光照效果(使用一個叫做global illumination或gi的技術),並且將其存儲在一個叫做lightmap的參考紋理圖中.這個計算過程被稱爲baking.當baking lightmap時,場景中static類型物體的光照效果會被計算成紋理,疊加到場景中幾何物體的表面,從而創造出光照效果.
   
       左圖:一個簡單的生成了lightmap的場景. 右圖:Unity生成的lightmap紋理.注意陰影和光照信息都在lightmap中.

       lightmaps能夠處理照射到物體表面的直射光和從場景中其他物體或表面反射的間接光。形成的光照紋理和物體表面的顏色、法線信息都可以被物體材質的Shader處理。
       光照bake後形成的lightmap在遊戲過程是不能改變的,所以它們也被稱爲static類型的。Realtime光照可以覆蓋疊加到場景中lightmap的表面,但是lightmap本身是不能改變的。
       使用這種方法,我們可以犧牲在遊戲中動態移動lights的功能,換取性能的提升,以滿足硬件性能較低的移動平臺。

Precomputed realtime global illumination

      由於static lightmaps不能反映場景中光照條件的變化,precomputed realtime GI提供了動態更新複雜場景光照的技術。
      這種方法使得通過實時響應光照變化的反射光創造特徵豐富的光照場景成爲可能。一個很好的例子是時間系統:光源的位置和顏色隨時間發生變化。傳統的backed光照是不可能實現這個功能的。

       使用Precomputed Realtime GI實現的一個簡單的時間系統。
       爲了在遊戲可接受的幀率下達到這些效果,我們需要將一些冗長的數學運算從實時計算轉化爲precomputed. 遊戲中發生的交互會引起復雜的光照行爲,precomputing將計算負擔轉移到時間不是很關鍵的階段去處理。這種方法稱爲‘offline’處理。
       更深入的信息請參考鏈接:lighting and rendering tutorial

益處和代價

       Backed GI和Precomputed Realtime GI是可以同時使用的,但要記住性能消耗是單獨使用兩種技術的和。我們需要在顯存中同時存儲兩套lightmaps,而且shaders對兩者都要進行decoding。
       在這兩中技術中選取哪一種,取決於你的項目需求和目標設備的硬件性能。比如在顯存和處理能力比較受限制的移動設備上,選擇Baked GI光照技術能夠提供較好的性能。在有較好的圖形硬件的計算機或者較新的遊戲終端上,可以選擇 Precomputed GI 甚至同時使用這兩種技術。當項目的目標硬件設備範圍較廣時,需要支持的硬件性能最低的設備往往決定了需要採用哪種光照技術。
       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章