日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D灯光与渲染学习之(二):全局、烘焙以及混合光照

發布時間:2023/12/31 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D灯光与渲染学习之(二):全局、烘焙以及混合光照 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇博客主要對實時、烘焙和混合光照進行介紹。傳送門:Unity3D燈光與渲染學習之(一):天空盒、燈光以及色彩空間Unity3D燈光與渲染學習之(二):全局、烘焙以及混合光照Unity3D燈光與渲染學習之(三):探針使用、后處理與批處理

4.全局和烘焙關照

全局光照,簡稱GI,是一個用來模擬光的互動和反彈等復雜行為的算法,要精確的仿真全局光照非常有挑戰性,付出的代價也高,正因為如此,現代游戲會先一定程度的預先處理這些計算,而非游戲執行時實時運算。沒有照明(左)、只有直接光源(中)、 有間接光源的全局光照(右)以烘焙光照為例,物體在經過光照之后,還會對其它物體產生光照影響。當烘焙全局光照打開后(下圖左),暗的部分也會因為別的物體的反射而變亮。將場景中的物體設置為靜態(勾選Static),將燈光模式改為烘培(Baked)即可看到效果(下右圖)。?改變模式為Baked,當烘焙完成后,燈光就可以刪除了,已經將光照貼圖賦給了游戲物體,燈光的作用已經消失了。
作為靜態物體,這么做是可以的,但是如果場景中新增了一個動態物體,就應該要使用混合型燈光了。

5.混合光照模式(Mixed Lighting)

Unity里每盞燈光默認的烘焙模式都是”Realtime”,這代表這些燈光仍然會照亮你的場景,Unity的realtime GI系統會處理間接光。但如果默認的烘焙模式是”Baked”,那么這些燈光將會透過Unity的烘焙GI系統處理直接光源和間接光源,產生出來的光照貼圖一旦貼到場景上在執行期間是不能改變的。選擇烘焙模式為”Mixed”的話,場景內的靜態對象會被烘焙GI拿去做計算,然而,不像”Baked”模式,混合模式的燈光仍會繼續運算即時光源到非靜態對象上,這對于你想把靜態環境烘成光照貼圖,但同時又希望同樣一盞燈能為會動的角色計算陰影很有幫助。
接下來考慮在混合光照下的燈光模式(只有在混合燈光情況下才有效),三種:
先從subtractive說起,在這種模式下的光照對于動態物體只顯示一個燈光陰影效果(下圖左立方體,右邊立方體為靜態,有兩個陰影)。
第二個燈光模式ShaderMask,對于動態和靜態物體能都能顯示完整的陰影效果。
,并且在Edit>Projection Setting>Quality之中,將Shadow Mask設置為Distance Shadowmask即可使物體受其他物體的陰影影響。效果如下。
當然可以用更高級的辦法,動態物體在與靜態物體陰影區域發生碰撞的時候,可以通過代碼動態修改Shadow Mask,實現調整。通過簡單的代碼實現 void OnTriggerEnter(Collider other){if(QualitySettings.shadowmaskMode == ShadowmaskMode.Shadowmask){ QualitySettings.shadowmaskMode = ShadowmaskMode.DistanceShadowmask;}else{ QualitySettings.shadowmaskMode = ShadowmaskMode.Shadowmask;} }第三種Baked Indirect,只烘焙間接光,其余情況均為RealTime,是最高級的模式,但當場景中距離大于Quality界面中的Shadow Distance時,所有陰影都不予顯示。

6.烘焙光照的參數詳解

這部分主要介紹Lighting界面中的Lightmapping Setting,即下圖中的參數信息
  • Lightingmap:分為Enlighten和Progressive兩種,視頻中介紹是差距不大,不過Progressive的烘焙速度會快一些。
  • Indirect Resolution:間接光照的精度,間接光即物體之間反射形成的光照。
  • Lightmap Resolution:一個單位烘多少個像素點,會影響燈光貼圖的大小。例如默認40時貼圖大小是8M,如果改成20,僅為2M.值越小,烘焙速度越快,但烘焙效果也會越低。
  • Lightingmap Padding:最終生成的uv信息圖間距,一般不需要修改,只有在光照貼圖的陰影部分出現問題時才需要進行調整。
  • Lightmap Size:光照貼圖的大小,如果改成256,則Global Map中會出現多張光照貼圖。
  • Ambient Occlusion:環境光遮蔽,開啟時場景中的邊角處會更貼近實際。
  • Find Gather:即物體之間的光線影響。靠近紅色墻壁的白球會顯示出一部分紅色,使場景更加真實,一般在場景制作完畢后勾選。
  • Indirect Intensity:間接光強度
  • Albedo Boost:控制光線對物體材質的影響,一般要與物體的Material結合使用。
ps:在物體的Inspector面板之中的Lightmap Setting之中,我們可以修改Scale in Lighting的值,范圍是0~1之間,值越小,對于這個物體的烘焙速度也越快,相對應地,會減小烘焙的效果。

總結

以上是生活随笔為你收集整理的Unity3D灯光与渲染学习之(二):全局、烘焙以及混合光照的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。