游戲全局光照有必要開。
全局光照,指的就是模擬光線是如何在場景中進行傳播的,不僅會考慮那些直接光照的效果,還會計算光線被不同的物體表面反射而產生的間接光照。全局光照可以提高游戲畫質,還是有必要開的,但需要開啟光線追蹤技術。
Unity使用實時+預計算的方式來模擬場景中的光照:其中實時光照用于那些直接光照對場景的影響,物體移動式光照也會隨之發生變化;因為實時光照無法模擬光線被多次反射的效果,因此采用預計算來模擬反射等間接光照。
全局光照的優勢
1、它提供的照片真實感水平的提高。正如我們之前討論的,全局照明算法考慮的方式光線從場景中的表面反射,從而產生更真實的陰影、反射和滲色。這使圖像具有更自然的外觀和感覺,使觀看者更容易放下懷疑并沉浸在虛擬環境中。
2、全局照明的另一個優點是它在照明場景時提供的靈活性。使用直接照明技術,場景中的照明很大程度上取決于光源本身的位置和強度。這可能會導致難以實現特定的外觀或氛圍,尤其是在處理復雜或動態場景時。另一方面,全局照明允許更細致和微妙的照明效果,可以進行調整和微調以實現正確的外觀。
Unity的光照系統中光照包括直接光照、間接光照、環境光和反射光。
直接光照:光源對于模型的光照。
間接光照:光線在其他模型上的反射所帶來的光照。
環境光照:天空盒的顏色。
反射光:光線照射到模型上反射回來的光。
Unity中有兩種不同的技術用于預計算照明、反射光。分別是Precomputed Realtime GI和 Baked GI。
GI
GI的全稱global illumination,全局光照。
在windows-> lighting中可以打開設置面板。
Precomputed Realtime GI
預計算實時光照,針對實時靜態模型之間的光照信息。
Realtime Resolution:預計算實時光照將場景分成許多的texel(紋素)這個值控制了每個單位有幾個texel,它對于模型間的反射光的質量有著很大的影響,但是隨著增大也會帶來更大的計算量。通常的來說如果是人密集且走動的村莊內這個值設置為2– 3之間、村莊外設置為0.5– 1之間。
CPU Usage:游戲中計算這些光照信息時CPU的占用率,分成low、medium、high、unlimited 4個擋位。
Baked GI
能得到更精確的模型之間的反射光信息,但是不能在游戲運行時實時的變動相應的光源信息,如顏色、方向。
這里要注意,如果要使用Baked GI,我們要為需要被烘焙光照信息的模型設置為Lightmap Static。選中模型然后在Inspector面板中點擊右上角的Static的下拉列表選中Lightmap Static。
Global Illumination(全局光照,縮寫GI),是3D計算機圖形中使用的一組算法通用名稱,旨在為3D場景添加更逼真的照明效果。
這種算法不僅考慮到直接來自光源的光照情況(直接光照),也會考慮到來自相同光源的光線照射到場景中物體表面時,又反彈到其他表面的后續情況(間接光照)。
在真實的世界里,光源會發射出大量的光子(Light photons)。光子達到物體表面后反彈(Bounce),根據反彈表面的色彩面改變自身的顏色,最終進入我們的眼睛。 GI(Global Illumination)全局照明模式就是嘗試模擬這種光子反彈式的物理照明過程。這種光子模擬過程為渲染增加了真實感,幫助數字藝術家得到更為生動、真實的畫面。
即便是處理極為簡單的場景,GI也可以營造出極高質量的效果。
光線直接照射物體表面,而沒有經過光子反彈,稱之為直接光照(Direct lighting)。光線經過一次或者多次物體表面的反彈,稱之為間接光照(Indirect lighting)。GI的核心是計算間接光照。
當光子碰撞到一個粗糙表面(Rough surface),它就會被隨機地向各個方向散射出去,這就是所謂的漫反射全局光照(Diffuse Global Illumination)。當光子擊中一個強烈的反射表面(Reflective surface)或折射表面(Refractive surface),如鏡面或者玻璃,它往往會向一個更可預測的方向反彈。光子離開反射、折射后,往往會“集結”在一起,形成有趣的光亮圖案。這種圖案被稱為焦散(Caustics)。全局光照(Global Illumination),在一般情況下,就是指這兩種效應:漫反射GI和焦散。
不同光照模式渲染對比:
在場景中引入更多的GI反彈次數會使光影效果更加明亮,相應的渲染速度也會更慢:
過多的GI反彈次數不僅會大幅增加渲染時間,有時也可能會導致畫面的亮部顯得“曝光過度”。基于這些因素,渲染時要適當限制反彈的次數,找到合適的反彈次數即可。