天天看點

烘焙光

原文連結:烘焙光

烘培光是設定為烘培模式的光照元件。

烘培光可以用來表示局部環境光,而不是功能齊全的光照。Unity在運作時之前預計算這些光照的照明,并在在任何運作時燈光計算中都不會考慮它們。這意味着烘培光沒有運作時開銷。

Unity将烘培光的直接和間接光烘培到光照貼圖(照明靜态GameObject)和光探測器(照亮動态GameObject)。即使在動态GameObject(參見Wikipedia: Specular highlight了解更多資訊)上,烘培光也不能形成鏡面光照效果。烘培光不會響應玩家的動作和場景中發生的事件。它們主要用來增加黑暗區域的亮度,而不用調整場景中所有光照。

烘培光也是唯一不能從動态GameObject向動态GameObject投射陰影的光照類型。

烘培光的優勢

  • 将靜态GameObject向靜态GameObject投射的高品質陰影存儲到光照貼圖中,而不增加成本。
  • 提供間接照明
  • 靜态GameObject的所有光照隻形成一個可以從着色器的光照貼圖中擷取的紋理。

烘培光的缺點

  • 沒有實時直接光(也就是說沒有鏡面光照效果)
  • 動态GameObject不能向靜态GameObject投射陰影
  • 隻能使用光探測器得到靜态GameObject向動态GameObject投射的低分辨率陰影
  • 與實時光相比,光照貼圖紋理會占用更多記憶體,因為光照貼圖需要額外包含直接光照資訊

技術細節

對于烘培光,Unity預處理除了從相機到表面這段光線以外的所有光線路徑。檢視文檔光照模式了解更多關于光照路徑的資訊。

烘焙光

烘培模式:所有光照路徑會被預處理

Unity會預處理直接烘培光,也就是說在運作時Unity不知道光照的方向資訊。少量的紋理操作會處理場景區域烘培光的所有光照計算。沒有方向資訊,UnityUnity不能進行鏡面反射的計算。如果要得到鏡面反射,可以使用反射探測器或者混和光或者實時光。檢視文檔directional light maps了解更多内容。

烘培光無法在運作時照亮動态GameObject。動态物體從烘培光擷取光照的唯一方法是通過光探測器。這是烘培光和任何Subtractive mode Mixed Lights的唯一差別(除了主要方向光),Subtractive模式的混和光會在運作時為動态GameObject計算光照。

  • 2017-06-08釋出 limited editorial review
  • 光照模式在5.6增加
下一篇: 紋理烘焙