Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光
?部分內(nèi)容摘抄自:https://www.cnblogs.com/murongxiaopifu/p/8553367.html
直接光和間接光
大家都知道在Unity中,我們可以在場景中布置方向光、點(diǎn)光、聚光等類型的光源。但如果只有這些光,則場景內(nèi)只會受到直接光的影響,而所謂的直接光簡單理解就是從光源發(fā)出的直接影響物體的光。如果只考慮直接光的影響,則會缺乏很多光影細(xì)節(jié),導(dǎo)致視覺效果很“平”。而間接光則描述了光子在物體表面之間的反彈,能夠用來增加細(xì)節(jié)以及真實(shí)感。
例如上圖中,位于天花板燈直射光線之外的區(qū)域缺乏光照效果。表現(xiàn)為四壁上沒有明暗細(xì)節(jié),相反此時直接光范圍之外都是均勻的黑色,而整個空間同樣也顯得十分平。
而增加了間接光之后進(jìn)行渲染,可以看到光被物體表面反彈,彩色光從一個表面轉(zhuǎn)移到另一個表面。表現(xiàn)為紅色墻壁和綠色墻壁(在右側(cè)和紅墻相對,沒在畫面內(nèi))的顏色反映到了場景中的其他表面上,四壁也不再是均勻的黑色,而有了層次感。
混合光照
使用混合光照和直接使用烘焙的lightmap有什么區(qū)別呢?簡單來說,選擇“混合”烘焙模式,會將標(biāo)記為靜態(tài)的GameObject受到的來自混合光源的光照信息保存為Lightmap。 然而,與標(biāo)記為“烘焙”的燈光不同,混合光源也會為場景中的非靜態(tài)(動態(tài))GameObject提供實(shí)時的直接光照。
Unity HDRP中的測試
首先打開window - rendering - lighting setting ,可以看到Mixed Lighting 選項(xiàng)卡。
一 無Baked Global illumination
如果我們對Baked Global illumination不勾選,則會提示,場景中的Baked光源和Mixed的光源會被默認(rèn)改成Realtime的實(shí)時光。?
?場景中Baked模式的光源,提示已被改為Realtime模式。
1.光照
黃色的光源為Baked模式,左側(cè)球體為static,右側(cè)球體為動態(tài)物體,此時可以發(fā)現(xiàn)由于Baked的光源被改成了Realtime模式,導(dǎo)致右側(cè)的動態(tài)小球也可以接收到光照。
2.陰影
此狀態(tài)下如果加入一個靜態(tài)物體(紅色面板)進(jìn)行陰影的測試,也會發(fā)現(xiàn)本來是Baked模式的黃色光源對動態(tài)物體也會產(chǎn)生陰影
?3.Emission
此模式下,由于沒有烘焙,綠色和紅色的emision物體也無法產(chǎn)生間接光,場景中的物體都沒有受到紅色和綠色物體的影響。
二 ShadowMask
當(dāng)在Lighting Setting中設(shè)置為ShadowMask模式后,可以發(fā)現(xiàn)場景中類型為Mixed的Light中的ShadowMask Mode有兩種模式,一種是ShadowMask,一種是Distance ShadowMask,兩者的區(qū)別在于陰影的渲染。
?1.光照
Mixed類型的光無論是設(shè)置為ShadowMask還是Distance ShadowMask,對光照的著色渲染都是相同的。對于靜態(tài)物體使用lightmap,對于動態(tài)物體使用實(shí)時光。Baked類型的光則是只能對靜態(tài)物體產(chǎn)生影響,動態(tài)物體需要使用LightProbe才能受到影響。
2.陰影
對于Baked類型的光源,靜態(tài)物體對靜態(tài)物體投射陰影是通過ShadowMask,靜態(tài)物體對動態(tài)物體投射陰影也需要通過LightProbe。動態(tài)物體則不能投射陰影。無論是ShadowMask還是LightProbe,都是預(yù)先計(jì)算的,因此也沒有實(shí)時陰影ShadowMap中的Shadow Distance的限制,也就是說無論物體距離多遠(yuǎn)都會有陰影。
ShadowMask模式
如果MixedLight中的Shadowmask Mode設(shè)置為ShadowMask(不要和Lighting Setting中的ShadowMask搞混)對于MixedLight類型的光源靜態(tài)物體投射陰影時和Baked類型光源投射狀況相同。動態(tài)物體投射陰影時則會采用ShadowMap的實(shí)時陰影。
如下圖,MixedLight類型的光源,紅色面板為靜態(tài)物體,左側(cè)球體為靜態(tài),可以通過ShadowMask正常接收靜態(tài)陰影,右側(cè)小球因?yàn)槭莿討B(tài),則不能直接接收靜態(tài)物體投射的陰影,如果需要接收,則要使用LightProbe。
?如果把紅色面板改為動態(tài)的,則兩個小球都會通過ShadowMap方式接收陰影。
ShadowDistance Mask模式
如果MixedLight中的Shadowmask Mode設(shè)置為Distance ShadowMask,在distance范圍內(nèi),無論是靜態(tài)還是動態(tài)物體投射陰影,都將使用ShadowMap的實(shí)時陰影。
而如果超出Distance,則對于靜態(tài)物體投射時,回歸到和ShadowMask一致,對于動態(tài)物體投射時則沒有陰影。
在distance范圍內(nèi),通過實(shí)時陰影都可以正常接收陰影。?
?
3.Emission
由于有l(wèi)ightmap的支撐,emission對間接光的貢獻(xiàn)也可展示出來,可以看到靜態(tài)的球體(左下和右上)會受到右側(cè)紅色面板的影響。?
三 Baked Indirect?
此模式下,事實(shí)上這個混合模式的名字就已經(jīng)十分直白了——它只烘焙間接光,其他的全部是實(shí)時的。Shadowmask貼圖?不存在的。
因此我們有了實(shí)時光、實(shí)時陰影等等。所以,在Shadow Distance的范圍之內(nèi)和實(shí)時光下效果一樣,陰影是實(shí)時的shadow map,并且在shadow distance之外不會有陰影產(chǎn)生——哪怕是分辨率比較低的模糊陰影也沒有。
1.光照
對于mixed類型的光(紫色),左側(cè)球體(靜態(tài))和右側(cè)球體(動態(tài))都會受到該光源的影響,左側(cè)靜態(tài)球體是通過lightmap獲取,而右側(cè)則是實(shí)時的。
對于baked類型的光(黃色),左側(cè)球體(靜態(tài))受到該光源的影響,右側(cè)球體(動態(tài))則不會受到該光源的影響。動態(tài)物體需要使用LightProb才能接受到baked類型光的影響。
2.陰影
在Baked Indirect模式下,無論是Mised Light還是Baked Light,在距離小于shadow distance時都將會投射shadowMap實(shí)時陰影,而大于shadow distance后將沒有陰影。
3.Emission
由于有l(wèi)ightmap的支撐,emission對間接光的貢獻(xiàn)也可展示出來,可以看到靜態(tài)的球體(左下和右上)會受到右側(cè)紅色面板的影響。?
?
總結(jié)
1.總結(jié)下對于MixedLight類型的光,在各模式下其光照和陰影的情況(感謝此圖原作者大佬)
2.Emission的間接光:只有靜態(tài)物體可以產(chǎn)生,動態(tài)物體如果想接收需要LightProbe?
3.動態(tài)物體想接收Baked的間接光或者陰影都得需要LightProbe
4.HDRP也有實(shí)時間接光,但是Spot和Point Lights并不支持。
5.別被ShadowMask搞蒙圈,對于Baked類型的光,只有ShadowMask和Baked Indirect的差別。?
?
總結(jié)
以上是生活随笔為你收集整理的Unity HDRP中的光照烘焙测试(Mixed Lighing )和间接光的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 团队行为心理学读书笔记(3)领导力背后的
- 下一篇: [最新原创电子书]lazarus开发者入