Unity Lighting -- Unity的光源簡(jiǎn)介
? ? ? 在主菜單欄中,點(diǎn)擊Window -> Rendering -> Light Explorer打開(kāi)光源管理器,這個(gè)標(biāo)簽頁(yè)可以看到場(chǎng)景中所有的光源,包括每個(gè)光源的類型,形狀,模式,顏色,強(qiáng)度,陰影等信息。

? ? ? 在主菜單欄中,點(diǎn)擊Window -> Rendering -> Lighting打開(kāi)窗口,這個(gè)窗口是設(shè)置場(chǎng)景級(jí)的燈光設(shè)置以及環(huán)境光和烘焙的燈光貼圖等設(shè)置。

直接光照(direct light)和間接光照(indirect light)的區(qū)別
? ? ? ? 直接光照:光線被發(fā)出后從表面反射一次后直接進(jìn)入了光感受器(比如眼睛)

? ? ? ? 間接光照: 最終反射到傳感器中的所有其他光,例如多次撞擊表面的光以及當(dāng)您不直接看太陽(yáng)時(shí)來(lái)自天空的光。

?Unity的全局照明系統(tǒng)(Global Illumination Systems)
? ? ? ? ?全局照明(Global Illumination)是Unity中用來(lái)提供給開(kāi)發(fā)者用于創(chuàng)建真實(shí)光照效果的一組技術(shù)。這些技術(shù)稱為全局照明的原因是它們同時(shí)模擬了直接光照和間接光照,而不是只有直接光照。
? ? ? ? 在Unity中有兩種不同的全局照明系統(tǒng):Baked Gloabl Illumination System(烘焙全局光照系統(tǒng))和Realtime Global Illumination System(實(shí)時(shí)全局光照系統(tǒng))。
烘焙全局光照系統(tǒng)組成部分
? ? ? ? 光照貼圖計(jì)算(Lightmapping):預(yù)計(jì)算場(chǎng)景中的各個(gè)表面的亮度并且存儲(chǔ)結(jié)果到一個(gè)叫做光照貼圖(Lightmap)的紋理的過(guò)程。全局光照系統(tǒng)使用一個(gè)特定的lightmapper系統(tǒng)(Unity - Manual: The Progressive Lightmapper)來(lái)完成這個(gè)過(guò)程。
? ? ? ? Light Probes:一種工具,用于測(cè)量(或探查-probe)場(chǎng)景中光線穿過(guò)空白空間的數(shù)據(jù)。
? ? ? ? Refleciton Probes:一種工具,Unity中用來(lái)模擬更多真實(shí)的反射效果。
? ? ? ? 所有渲染管線都支持Baked Global Illumination。
實(shí)時(shí)全局光照系統(tǒng)組成部分
? ? ? ? 光照貼圖計(jì)算(Lightmapping):全局光照系統(tǒng)使用一個(gè)已經(jīng)棄用了的光照貼圖器,Enlighten Lightmapper。
? ? ? ? Light Probes:一種工具,擁有更多額外的功能。
? ? ? ? URP(Universal Render Pipeline)不支持實(shí)時(shí)全局光照系統(tǒng)。
Unity中的實(shí)時(shí)光照
? ? ? ? 在游戲或其他實(shí)時(shí)應(yīng)用跑起來(lái)的時(shí)候,Unity會(huì)在運(yùn)行時(shí)計(jì)算實(shí)時(shí)的光照。實(shí)時(shí)光照會(huì)在每一幀計(jì)算一次,對(duì)于場(chǎng)景中移動(dòng)的物體和角色的響應(yīng)性非常好。
? ? ? ? 我們下面以實(shí)際的例子來(lái)看看其效果,下圖場(chǎng)景中有一個(gè)路燈,我們?cè)趫?chǎng)景中移動(dòng)它:


? ? ? ? ?可以看到,在場(chǎng)景中拖動(dòng)這個(gè)路燈時(shí),燈光所能照到的區(qū)域內(nèi)的光照和陰影會(huì)實(shí)時(shí)發(fā)生變化。
Unity中的烘焙光照
? ? ? ? 當(dāng)場(chǎng)景變得越來(lái)越復(fù)雜時(shí),實(shí)時(shí)的光照計(jì)算會(huì)消耗大量的資源,影響性能。烘焙光照特性能夠減輕這個(gè)問(wèn)題的影響,能讓較低配置的硬件也能得到不錯(cuò)的效果,它通過(guò)在運(yùn)行前預(yù)先計(jì)算出光照數(shù)據(jù)來(lái)達(dá)到這個(gè)效果。這樣在運(yùn)行時(shí)能夠減少開(kāi)銷,提升性能。
? ? ? ? 執(zhí)行計(jì)算并保存數(shù)據(jù)為光照貼圖(Lightmap)紋理的過(guò)程稱為烘焙(baking或lightmapping)。如前面所說(shuō),對(duì)于烘焙光照的計(jì)算,通過(guò)一個(gè)稱為Progressive Lightmapper(Unity - Manual: The Progressive Lightmapper)的光照貼圖器系統(tǒng)來(lái)實(shí)現(xiàn)。
? ? ? ? 烘焙光照能夠提升許多效率,也能被用來(lái)實(shí)現(xiàn)更加真實(shí)和有體驗(yàn)感的光照效果。但預(yù)先計(jì)算數(shù)據(jù)也意味著事情不總是能夠按你期望的效果發(fā)生,除非光源和場(chǎng)景配置成了特定的方式,否則當(dāng)場(chǎng)景中的物體發(fā)生交互時(shí),會(huì)產(chǎn)生一些奇怪的效果。
? ? ? ? 下面還是以一個(gè)例子來(lái)看看烘焙光照的效果:


? ? ? ? ?可以看到,當(dāng)使用烘焙光照方式時(shí),光源發(fā)生移動(dòng)后,其光照并沒(méi)有跟著光源的移動(dòng)發(fā)生變化。如果要在新位置上也能有光照效果,則需要重新烘焙。
————————————————
原文在我的CSDN上,鏈接:https://blog.csdn.net/vivo01/article/details/129230831