在Unity中鹰霍,有兩種不同的技術(shù)可用于預(yù)計(jì)算全局光照global illumination(GI)或反射光照(bounced lighting)潭兽。分別為Baked GI和Precomputed Realtime GI。本教程重點(diǎn)介紹預(yù)計(jì)算實(shí)時(shí)GI看锉。
使用預(yù)計(jì)算實(shí)時(shí)GI時(shí)鹿驼,光照預(yù)計(jì)算是計(jì)算Unity編輯器中場(chǎng)景中靜態(tài)幾何體周?chē)姆瓷涔獠⒋鎯?chǔ)這數(shù)據(jù)以供在運(yùn)行時(shí)使用窖剑。此過(guò)程減少了必須在運(yùn)行時(shí)執(zhí)行的光照計(jì)算次數(shù)聪轿,在保持交互式幀速率(maintaining interactive framerates)下允許實(shí)時(shí)反彈燈光(bounced lighting)煤惩。
使用Baked GI時(shí)嫉嘀,在預(yù)計(jì)算過(guò)程中會(huì)離線(xiàn)生成傳統(tǒng)的光照貼圖紋理。然后魄揉,這些紋理作為項(xiàng)目中的資產(chǎn)(assets)存在吃沪,并且無(wú)法在運(yùn)行時(shí)更改。預(yù)先計(jì)算的實(shí)時(shí)GI不會(huì)以相同的方式創(chuàng)建光照貼圖資產(chǎn)什猖。相反,光照數(shù)據(jù)(lighting data)以L(fǎng)ighting Data Asset保存红淡,其中包含在運(yùn)行的時(shí)候交互的(interactively)生成和更新一組低分辨率光照貼圖所需的信息不狮。
除非我們的場(chǎng)景已經(jīng)過(guò)適當(dāng)?shù)臏?zhǔn)備和優(yōu)化,否則完成這些計(jì)算所需的時(shí)間可能會(huì)過(guò)長(zhǎng)在旱。在本教程中摇零,我們將學(xué)習(xí)如何優(yōu)化Enlighten的場(chǎng)景(Unity的預(yù)計(jì)算實(shí)時(shí)GI和Baked GI解決方案的后臺(tái)),以便使光照預(yù)計(jì)算需要幾分鐘而不是幾小時(shí)桶蝎。
教程文檔將覆蓋以下幾點(diǎn):
1)如何為場(chǎng)景確定合適的照明分辨率(lighting resolution)驻仅。
2)圖表(Charts)是什么以及它們?nèi)绾斡绊懳覀兊念A(yù)計(jì)算時(shí)間。
3)如何啟動(dòng)預(yù)計(jì)算過(guò)程登渣。
4)使用探頭照明來(lái)降低照明解決方案的復(fù)雜性噪服。
5)通過(guò)Unity的預(yù)計(jì)算實(shí)時(shí)GI改進(jìn)自動(dòng)展開(kāi)UV的生成。
6)集群(Clusters)是什么以及它們?nèi)绾斡糜谏扇止庹铡?/p>
7)使用光照貼圖參數(shù)可以基于每個(gè)對(duì)象微調(diào)我們的光照胜茧。
一旦我們學(xué)習(xí)并應(yīng)用了這些技術(shù)粘优,我們就可以利用預(yù)計(jì)算實(shí)時(shí)GI的優(yōu)勢(shì):加快光照的迭代次數(shù),在照明過(guò)程中更快速地進(jìn)行實(shí)驗(yàn)的能力以及在游戲過(guò)程中實(shí)時(shí)反射光照呻顽。
一雹顺、Reducing precompute times from hoursto minutes
在本教程使用的Lighting Tutorial場(chǎng)景中,在我們的測(cè)試機(jī)器上使用默認(rèn)的非優(yōu)化設(shè)置對(duì)照明進(jìn)行預(yù)計(jì)算需要大約7.5小時(shí)廊遍。對(duì)于這種復(fù)雜的場(chǎng)景嬉愧,顯然這是不可接受的。
使用本教程中介紹的技術(shù)進(jìn)行場(chǎng)景準(zhǔn)備約30分鐘后喉前,預(yù)計(jì)算時(shí)間為2.25分鐘没酣,以獲得不錯(cuò)的結(jié)果王财。考慮到我們可以快速迭代場(chǎng)景照明而無(wú)需在游戲過(guò)程中重新計(jì)算GI并改變GI照明四康,這項(xiàng)技術(shù)的吸引人的好處很快就會(huì)顯現(xiàn)出來(lái)搪搏。