今天分享的幹貨是unity中的Light probe,我們在對unity中的場景添加燈光進行渲染的時候,有些為了突出角色會添加很多實時光源。但這些實時光源會使內存的消耗過大,從優化的角度出發,應該首先想辦法提高間接光的亮度。而如果我們要增加動態物體的間接光照的話,就需要用今天我們要提及的Light Probe。
1、Light Probe原理
LightProbe主要解決了如何在動態對象和角色上使用烘焙的照明信息。它在計算的時候采用的是球諧函數來對球麵上的亮度信息進行編碼。核心就是球麵亮度信號編碼和重建。

上圖表示的就是一個原始的亮度信號會被分解成一係列帶縮放參數的基函數之和,如果我們知道這些基函數的縮放係數的話,就可以在運行時快速的重建原始的亮度信息。
所以lightprobe的內存消耗是很低的,隻需要將縮放係數與其對應的基函數相乘之後再求和的結果就是近似的原始信號。
在Unity中,Baked GI的LightProbe采用的3階球諧函數,RealtimeGI采用的是2階球諧函數。
2、場景中的運用
為了進一步理解我們在場景中創建一個如圖所示的半封閉空間來模擬房間。關閉掉場景中默認的DirectionalLight

然後在左上角再添加一盞點光源,為了方便觀察將光源的顏色改為紅色或者其他,稍微增加光源強度intensity以及範圍range。

當前中間的兩塊擋板都是static,所以目前看起來所接收的光照正常,但是如果我們把第一塊取消勾選static,即這塊物體時移動的話,就需要在光源周圍添加light probe,將光源的數據進行分解然後傳遞給動態物件,才會得到正確的光照。
3、創建light probe
點擊Hierarchy的Create,在Light中選擇最後一個Light Probe Group

然後會看到場景裏麵出現了幾個相連的小球立方,那些小球就是用來獲取計算原始光源。

我們將light probe拉到光源附近,ctrl加左鍵可以選擇單個小球,然後我們把後麵的四個小球選中ctrl + d進行複製,複製完成以後拉開距離,就得到如下圖所示的light probe

然後打開lighting settings用默認參數點擊Generate Lighting對整個場景進行燈光烘焙


烘焙完成以後選中我們設置為了no static的第一塊板,會發現它連了三個小球,而這三個小球就是在進行light probe球諧函數計算的時候,參與計算的三個小球,整塊板所有的光線信息都是來源於這個三個小球所接受的信息權重計算後進行插值得到的結果

所以,在unity中,light probe會根據物體所在的位置,選擇四麵體,然後使用組成四麵體的點進行插值。
而且,light probe隻針對no static的物件進行計算,不對static的物體有作用。
所以如果我們在場景中選擇第二塊藍色板的話,是不用有相關的probe小球出現的。

另外,如果我們在第一塊板的附近放一個cube,正常情況下在cube身上會接收到來自木板的反射光,但是實際上卻是模板對cube沒有任何的光源反射影響

而當我們把木板改成static後,再次進行烘焙就會得到完全不一樣的效果

Cube得到了大量來自木板的反射,由此可見,被light probe作用的no static物體,其自身是不會產生反射的。
來源: Thepoly 微信公眾號
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答在廣州這座繁華的都市中,數字創意產業正蓬勃發展,廣州視頻剪輯培訓成為許多影視愛好者的理想起點。隨著短視頻平台和影視製作需求的激......
在北京這樣一座充滿創意活力的都市,UI設計培訓正成為無數年輕人追逐職業夢想的跳板。隨著數字經濟的蓬勃發展,UI設計行業在北京展......
在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......
在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......
在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......
在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......
同學您好!