ps網(wǎng)站切圖教程南京seo關(guān)鍵詞優(yōu)化預(yù)訂
????????之前就學(xué)過但是太久沒用又忘了,因此用最簡(jiǎn)潔易懂的語言做個(gè)記錄。
????????全局光照分為兩個(gè)系統(tǒng),分別是實(shí)時(shí)光照和混合光照。(點(diǎn)擊window/Rendering/Lighing打開此面板)
????????其中全局光照對(duì)于我來說都是新技術(shù)了,上一次學(xué)習(xí)全局光照的時(shí)候的時(shí)候都還沒有這個(gè)技術(shù),因?yàn)樵陧?xiàng)目中大部分是用一個(gè)直接光照和環(huán)境光就完事了。
????????我不打算先說明各種術(shù)語,而是在使用的時(shí)候再說明,以免大家沒耐心看下去。我之所以要寫這個(gè)博客就是看別人的博客的時(shí)候老是先說很久術(shù)語才進(jìn)入正題,導(dǎo)致我看的很沒耐心。
????????unity中其實(shí)有兩套全局光照系統(tǒng),就是上圖中的Realtime lighting和mixed lighting,即實(shí)時(shí)光照和混合光照。他們其實(shí)是獨(dú)立的,我們一般選擇性使用其中一種就行了。他們兩個(gè)也可以同時(shí)啟用,同時(shí)啟用的話太混亂而且性能消耗也很高,我就不考慮了。
實(shí)時(shí)光照:
????????啟用時(shí)場(chǎng)景中的光源只能使用實(shí)時(shí)模式,也就是Realtime,但是系統(tǒng)不會(huì)自動(dòng)切換,注意手動(dòng)設(shè)置,啟用Realtime Environment Lighting的話除了直接光還會(huì)實(shí)時(shí)計(jì)算間接光并應(yīng)用效果,不過能計(jì)算間接光的只有平行光,因?yàn)槠渌奶男阅芰恕?/p>
????????光源有三種模式,剩下的之后再說。實(shí)時(shí)光照只能選擇realtime,不用管。
????????要注意的是,雖然名字是實(shí)時(shí)光照,但是還是只能對(duì)靜態(tài)物體進(jìn)行光照計(jì)算。我們?cè)趫?chǎng)景中放置好要被實(shí)時(shí)關(guān)照的物體,并設(shè)置為contribute GI靜態(tài),其他的可選可不選。
????????搭建好場(chǎng)景,根據(jù)需要設(shè)置環(huán)境光,這個(gè)太基礎(chǔ)了就不講了。要注意的是如果想在場(chǎng)景中實(shí)現(xiàn)全黑的效果環(huán)境光就必須為0。我這里環(huán)境光設(shè)置為0,以排除影響。初始場(chǎng)景是這樣的,所有物體都是靜態(tài)物體。
????????開啟全局光照和全局光照環(huán)境光選項(xiàng)不開啟混合光照,平行光光照模式模式設(shè)置Realtimeh后,點(diǎn)積烘焙光照。這個(gè)烘焙光照其實(shí)是計(jì)算光信息,然后存儲(chǔ)在貼圖中,之后就可以實(shí)時(shí)計(jì)算間接光了。
????????可以看到這個(gè)貼圖非常的小,這也是能實(shí)時(shí)計(jì)算的原因。烘焙光照后:

????????實(shí)時(shí)光照效果一般,參數(shù)幾乎不可調(diào)。但是他強(qiáng)在實(shí)時(shí)的間光接效果,光源可隨意移動(dòng),可以讓開發(fā)者動(dòng)態(tài)調(diào)整靜態(tài)場(chǎng)景中的光源參數(shù),快速制作美術(shù)原型,在場(chǎng)景進(jìn)行美術(shù)設(shè)計(jì)師不用每次等待漫長(zhǎng)的烘焙,并且在較低要求下它也可以勝任晝夜交替等效果。
????????雖然我說它的效果一般,但是實(shí)際上它的效果對(duì)比默認(rèn)環(huán)境光還是好得多。

????????對(duì)了,間接光。大家可能看不太出來間接光的效果,其實(shí)有,但是很弱,仔細(xì)看才能看到。
????????上面只說了靜態(tài)物體,接下來要說動(dòng)態(tài)物體了。我們放一個(gè)膠囊提,不設(shè)置為static。
????????效果如下,它的背面是完全黑的。
????????因?yàn)閷?shí)時(shí)光照計(jì)算的間接光是烘焙的,并不是真的光,所以動(dòng)態(tài)物體收不到間接光。此時(shí)我們就需要用到光照探針了。
????????什么是光照探針?在unity中右鍵,可以創(chuàng)建光照探針LightProbeGroup,或者說探針組。
????????它長(zhǎng)這樣,其中的8個(gè)點(diǎn)可以拖拽,來包括一個(gè)范圍,但是我們一般不拖拽,而是復(fù)制粘貼多個(gè)探針在場(chǎng)景中。
????????然后重新在lighing面板Generate Lighting后膠囊體的背面受到了光照
????????所謂LighingProbeGroup就是一組光照探針,其中的每個(gè)點(diǎn)是一個(gè)探針。它的作用是收集周圍的間接光信息并施加到動(dòng)態(tài)物體上,就這么簡(jiǎn)單。
????????不過這個(gè)要注意的一件事是擺放的位置和密度,密度越高性能消耗越高,位置也有所講究,我們不能只擺在有光的地方,我們還要擺在沒有光的地方。因?yàn)閯?dòng)態(tài)物體受到的間接光照是來自最近的探針的。假設(shè)世界中只有一個(gè)探針,那么無論在哪里動(dòng)態(tài)物體都受到一樣強(qiáng)度的間接光照。
????????如圖,離得很遠(yuǎn)背面一樣很亮。????????要解決這個(gè)問題需要在世界放置更多探針,光線不重要的區(qū)域探針組可以很分散。如圖,背面變得黑暗了。
????????上面就是實(shí)時(shí)光照的部分。理解了上面的部分就可以講混合光照了。
混合光照:
????????混合光照有三個(gè)選項(xiàng),分別是Baked Indirect,Subtractive,ShadowMask。接下來依次說明。
1.BakeIndirect模式混合光照:
????????選擇baked indirect,下面也有說明,混合光源提供實(shí)時(shí)直接光,間接光被烘焙到光照貼圖和光照探針中。
????????很清晰,直接烘焙光照,我們先不用管烘焙的各種參數(shù),我們先著重于模式之間的區(qū)別,參數(shù)后面再說,只用設(shè)置這里的烘焙選項(xiàng)改為Gpu就行了,也就是用顯卡來烘焙而不是cpu,會(huì)快很多。遙想當(dāng)年用cpu烘焙的龜速,簡(jiǎn)直要吐了。
????????如果直接烘焙沒有效果,記得把光源改成mixedLight,改成realtime會(huì)無法烘焙,改成baked的話可以烘焙,但是光源不會(huì)再有直接光。只有使用MixedLight才能在有直接光的同時(shí)烘焙間接光照貼圖。
????????烘焙后的效果,也不太好看。因該是我場(chǎng)景設(shè)置的問題QWQ
????????因此我決定換個(gè)場(chǎng)景,可以看到換個(gè)場(chǎng)景,也就是加了墻面后間接光效果更好,整個(gè)場(chǎng)景也更好看了。

?為了公平起見,重新用新的場(chǎng)景進(jìn)行實(shí)時(shí)渲染來對(duì)比。

?可以看到實(shí)時(shí)渲染和Baked Indirect視覺效果差不多。烘焙的渲染要更加深邃柔和一點(diǎn),但是差的不是很多,這也說明用實(shí)時(shí)光照進(jìn)行場(chǎng)景照明也是不錯(cuò)的。
????????實(shí)時(shí)光照移動(dòng)光源時(shí)間接光會(huì)跟著變化,而烘焙光照(混合光照,物體接受直射光和烘焙后的間接光),移動(dòng)相機(jī)時(shí)烘焙的間接光不會(huì)變化,也就是相機(jī)換了角度但是圖中的綠色藍(lán)色紅色之類的反射光還在原地,但是陰影是實(shí)時(shí)的。
????????對(duì)了,還得對(duì)比一下不使用全局光照的效果,也就是一個(gè)平行光提供直接光照加上天空盒的環(huán)境光,確實(shí)挺難看的,不過在動(dòng)態(tài)生成的地圖中也沒啥辦法,除非用某些支持實(shí)時(shí)動(dòng)態(tài)的插件。

引入動(dòng)態(tài)物體
????????和實(shí)時(shí)光照一樣,放置光照探針重新烘焙就行了。
2.Subtractive模式混合光照:
????????Subtractive 光照模是一個(gè)注重性能的模式,這在低端硬件上非常有用,因?yàn)榈投擞布枰⒅匦阅?#xff0c;并且只需要一個(gè)實(shí)時(shí)陰影投射光源。這種光照模式不會(huì)提供特別逼真的光照效果,而是更適合風(fēng)格化美學(xué),例如卡通風(fēng)格。因此在實(shí)際使用時(shí)會(huì)有一些奇怪的效果,下面會(huì)講解。
????????先看看描述,說的也很清晰,混合光源對(duì)靜態(tài)物體提供烘焙的直接光和間接光,動(dòng)態(tài)物體接受主平行光提供的實(shí)時(shí)的直接光并且可以投射陰影到靜態(tài)物體上。
????????因?yàn)橹苯庸夂姹涸诹遂o態(tài)物體中,所以此時(shí)移動(dòng)光源直接光照不會(huì)有任何變化,其實(shí)烘焙了直接光也就意味著烘焙了陰影(注意烘焙直接光和提供直接光的區(qū)別),在移動(dòng)光源時(shí)場(chǎng)景中烘焙好的物體的直接光照和間接光照和陰影不會(huì)有任何變化。
????????要注意的是,描述說的不是很全,動(dòng)態(tài)物體并不是只能接受主平行光的光照,它也可以接受其他光源的直接光照并產(chǎn)生陰影,只是主平行光會(huì)特殊處理。主平行光投射的陰影不僅會(huì)投射到靜態(tài)物體上還會(huì)穿過靜態(tài)物體。

????????這個(gè)圖看著很奇怪,動(dòng)態(tài)膠囊體C的陰影怎么是紅色的?為什么還能穿過方塊F?是光照角度的問題嗎?和其他膠囊體對(duì)比發(fā)現(xiàn)并不是光照角度的問題,膠囊體AB的陰影都是正常的。
????????其實(shí)是因?yàn)殛幱氨缓姹旱焦庹召N圖中,所以 Unity 在運(yùn)行時(shí)缺少將烘焙陰影和實(shí)時(shí)陰影準(zhǔn)確地結(jié)合在一起所需的信息,也可以理解為沒有遮擋信息。但是,Unity 提供了?Realtime Shadow Color?屬性來減少光照貼圖的影響,從而在烘焙陰影和實(shí)時(shí)陰影之間創(chuàng)建正確的混合視覺效果。還可以調(diào)整顏色來實(shí)現(xiàn)某種藝術(shù)風(fēng)格。
????????要注意的是,只有實(shí)時(shí)陰影和烘焙陰影重疊的時(shí)候才會(huì)使用RealTimeShadowColor,如圖
????????Subtractive中還有一個(gè)特性,就是靜態(tài)物體無法使用高光效果,因?yàn)楦吖庑Ч枰蕾噷?shí)時(shí)光照的計(jì)算,靜態(tài)物體的光照數(shù)據(jù)是烘焙的,無法得到實(shí)時(shí)光照數(shù)據(jù)。
????????還有要注意的是,因?yàn)殪o態(tài)物體的光照和陰影都是烘焙的并不是實(shí)時(shí)的,而且主平行光是分開計(jì)算的,所以動(dòng)態(tài)物體不會(huì)接受靜態(tài)物體所產(chǎn)生的光照。
????????要對(duì)動(dòng)態(tài)物體實(shí)施間接光照和之前一樣,烘焙光照探針即可。
????????如圖,動(dòng)態(tài)膠囊體在陰影中依然直接受到直接光照,要讓他能模擬受到陰影的效果,就必須烘焙光照探針。為什么要說模擬受到陰影呢?因?yàn)樗鼘?shí)際上還是沒有受到陰影,只是周圍的光照探針信息較暗讓他比整體變暗了而已。
????????如果讀者自己嘗試就會(huì)發(fā)現(xiàn)探針的位置其實(shí)很有講究,因?yàn)楝F(xiàn)在所受到間接光其實(shí)是周圍探針共同作用的。
????????點(diǎn)擊動(dòng)態(tài)物體可以看到對(duì)其有影響的探針,最左下角的探針是黑的,左上方較暗,而右方的較亮。動(dòng)態(tài)物體收到的光照是根據(jù)探針的光照信息來混合得到的,如果把左方的兩個(gè)探針移動(dòng)到更亮的地方那么動(dòng)態(tài)物體左側(cè)會(huì)更亮,反之會(huì)更暗。
3.Shadowmask模式混合光照:
????????Shadowmask的作用是什么呢?在開發(fā)開放世界游戲中,如果地圖很大,為了更好的視覺效果,最好能夠計(jì)算所有的陰影,但是我們的性能不允許我們這么做,我們不可能計(jì)算所有物體的陰影,除非全是靜態(tài)陰影。假設(shè)我們使用Subtractive模式,靜態(tài)物體的實(shí)時(shí)陰影沒有問題,但是動(dòng)態(tài)物體卻接收不到靜態(tài)物體的陰影。如果我們想動(dòng)態(tài)物體和靜態(tài)物體的關(guān)系能夠正確,并且可以有靜態(tài)陰影,那么就要用到shadowmask模式。而相比Baked indirect,在近處使用實(shí)時(shí)陰影時(shí)遠(yuǎn)處也可以有靜態(tài)陰影。
????????混合光源提供實(shí)時(shí)直接光照,間接光被烘焙到光照貼圖和光照探針中。為了烘焙陰影會(huì)生成陰影遮罩和探針遮擋關(guān)系,使用的陰影遮罩模式可以在編輯器的Qualtiy設(shè)置中設(shè)置。
????????陰影遮罩模式有兩種,分別是DistanceShadowmask和shadowmask。他們之間的主要區(qū)別是是否使用陰影距離,陰影距離也在下圖中設(shè)置,shadowDistance就是。
3.1DistanceShadowmask
? ? ? ? 再次查看描述,混合光提供直接光,間接光被烘焙。這兩個(gè)簡(jiǎn)單,關(guān)鍵在于烘焙陰影,生成了Shadowmask和Light probe occulsion,這里的shadowmask其實(shí)就可以看成生成好的烘焙陰影貼圖,而light probe occulsion就是光照探針遮擋關(guān)系,他是光照探針系統(tǒng)的一部分,也就是記錄陰影的遮擋關(guān)系。有了它我們就可以完成subtractive模式中無法做到的使用間接光來計(jì)算陰影。
? ? ? ? 描述里沒有明確說明,但其實(shí)提供直接光照也包括投射陰影,所以,shadowmask中模式中同時(shí)存在靜態(tài)陰影和動(dòng)態(tài)陰影。其中shadowmask就是烘焙的陰影。
? ? ? ? ?實(shí)際上這個(gè)模式籠統(tǒng)來說就是遠(yuǎn)處用烘焙的陰影,近處用實(shí)時(shí)陰影,更簡(jiǎn)單的情況下用探針計(jì)算陰影。就這些。這個(gè)模式適合全靜態(tài)場(chǎng)景但是需要正確光照效果的場(chǎng)景,或者說大地圖場(chǎng)景但是靜態(tài)光源。
? ? ? ? 為什么要靜態(tài)光源呢?因?yàn)檫@個(gè)本質(zhì)還是烘焙的,如果光源變化但是遠(yuǎn)處的陰影不變和間接光不變看著就不合理。
? ? ? ? 具體的光照處理如下圖,其中的陰影貼圖可以理解為實(shí)時(shí)光照用到的貼圖,表中如果說用的是陰影貼圖就代表用的是實(shí)時(shí)陰影。
? ? ?
3.2Shadowmask
? ??
? ? ? ?shadowmask模式其實(shí)本質(zhì)上和Distance shadowmask差不多,只不過更省性能罷了。
? ? ? ? shadowmmask模式中陰影存儲(chǔ)在貼圖中,所以陰影距離相比Baked Indirect可以設(shè)置的更小,可以更節(jié)省性能。
光源說明
? ? ? ? 上面所有的案例說的都是平行光,其他光源也差不多,只不過實(shí)時(shí)光照模式中只有平行光可以實(shí)時(shí)光照。Subtractive中主平行光陰影比較特殊。
? ? ? ? 然后光源中還有一個(gè)模式:Baked模式,這個(gè)只能在混合光照模式中使用。
????????
????????它和Mixed的區(qū)別是它不會(huì)對(duì)動(dòng)態(tài)物體產(chǎn)生光照。
? ? ? ? 然和說一個(gè)特殊的光源:面光
? ? ??
? ? ? ? 他沒有模式設(shè)置,在混合光照模式下使用,直接烘焙就可以,他產(chǎn)生的光是從面上向四面八方反射,所以最終結(jié)果更加真實(shí)柔和但是烘焙時(shí)間更長(zhǎng)