2017年1月12日 星期四

Unity 5.6 的光照模式

潤稿:Kelvin Lo

我們一直致力於解決混合光照的問題,在Unity 5.6 Beta 2版本中加入了不斷改進後的功能。本文將為大家分享改進後的光照模式、光照面板及全新的編輯器面板Light Explorer。

介紹


我們想要達成的目標就是幫Unity開發者提供更穩定更直覺的光照方式,並混合烘焙光照和即時光照及陰影來建置場景。Unity 5.6 Beta 2中我們做了這些功能來達成這個目標:

1. Unity舊有的Realtime、Mixed及Baked光照模式已改為Dynamic、Stationary及Static。

2. 採用新的 Stationary光照模式組,它可以
針對不同的環境與硬體提供一系列定義好的光照方案。

3. Lighting介面也做了全面更新,同時還更新了Mesh Renderer和Light Component Inspector介面。

4. 採用新的編輯器Light Explorer,可以快速存取光照、反射探針(Reflection Probe)、光探針(Light Probe)以及自發光(Emissive)材質。

光照




光照可以設定為以下三種模式:
  • Dynamic(對應之的Realtime)
  • Stationary(對應之前的Mixed)
  • Static(對應之前的Baked)

Dynamic動態光會產生動態的光照和陰影。這些光照可以在執行時改變位置、方向、顏色、亮度以及其它屬性。這種類型的光照最靈活,並且可用來計算即時全域光照(Realtime Global Illumination)。動態光在執行時計算直接光照,也會透過陰影貼圖產生即時陰影,在Lighting介面中啟用Realtime Global Illumination會讓動態光源作為即時間接光而影響整個場景。間接光是由即時光照貼圖及Enlighten更新的光照探針來計算的。

Stationary固定光會基於光照面板中設定的Stationary光照模式,來混合使用動態及烘焙光照。所有除Subtractive模式以外的Stationary光照模式都會在執行時計算直接光照,並在光照貼圖及光照探針中存儲間接光照的資訊。Subtractive模式會在烘焙期間計算所有標記為Static物件的直接光照。場景設定的Stationary光照模式會影響到其中的Stationary固定光。

Static靜態光不能在執行時移動或做其它任何改變。所有靜態物件的光照都被烘焙到光照貼圖中。動態物件的光照和陰影會被烘焙到光照探針Light Probe中。

Stationary光照模式



Stationary固定光可以由場景中多種光照模式來控制,這些光照模式指示光照系統如何處理場景中各種光照的直接照明、間接照明及陰影。Stationary固定光可用的光照模式有以下幾種:

  • Baked Indirect(間接烘焙)
    Stationary固定光會影響即時的直接光照,並透過光照貼圖和光照探針影響間接光照。如何使用即時陰影取決於Shadow Distance設定。Baked Indirect模式的效能與效果相對平衡,適合中或高端硬體。
  • Distance Shadowmask(距離陰影遮罩)
    Stationary固定光會影響即時的直接光照,並透過光照貼圖和光照探針影響間接光照。即時陰影的效果會根據Shadow Distance設定來決定如何使用即時陰影。此外,靜態物體透過陰影遮罩接收陰影,動態物體則透過光照探針遮蔽(Occlusion)來接收陰影。Distance Shadowmask模式比較適合用於大型或室外場景。
  • Shadowmask(陰影遮罩)
    Stationary固定光會影響即時的直接光照,並透過光照貼圖和光照探針影響間接光照。靜態物體使用陰影遮罩為自己產生陰影。動態物體根據Shadow Distance設定所產生的即時陰影貼圖來接收陰影。動態物體從光照探針遮蔽(Light Probes occlusion)中接收靜態物體的陰影。Shadowmask模式適合用於那些只需為場景中角色或道具增加即時陰影的情況。
  • Subtractive
    Stationary固定光透過光照貼圖和光照探針影響間接光照。靜態物體通過光照貼圖處理直接光照,動態物體則即時處理。靜態物體通過近似的即時陰影的貼圖從主方向光接收動態物體的陰影,即時陰影的效果貼圖取決於Shadow Distance設定。動態物體透過即時陰影來接收彼此的陰影,即時陰影取決於Shadow Distance設定。動態物體通過光照探針接收靜態物體的陰影。Subtractive模式消耗極小,適合用於整個場景只有一個定向光(通常指太陽)的情況,並且能夠支援低階的移動設備。
這些介紹都也會顯示在光照介面的提示中,讓大家更容易在編輯環境下了解光照模式。

UI使用者介面


我們對Lighting介面也做了全面更新,同時還更新了Mesh Renderer和Light Component Inspector介面,概述如下。

Lighting介面


Lighting介面相比舊版更直覺更好用。改變如下:
  • 光照介面不需要的地方現在可以連裡面的屬性顯示一起折疊起來。
  • 我們重寫了標籤及提示資訊,更友善也能提供更多資訊給開發者。
  • 光照介面底部整合了新的統計面板,可以快速檢視場景中光照相關的統計資訊。


  • Lightmaps頁籤改名為“Global Maps”,顯示包含多種貼圖如Intensity、Directionality、Shadowmask等等。


  • 重建Object頁籤並重新命名為Object Maps。顯示當下選擇物件的烘焙貼圖預覽。可以平移及縮放標籤下的視圖,也可以用F快速鍵把焦點移到這個物體的光照貼圖UV上。之前顯示在Object頁籤下的屬性都已重新分配到對應組件的檢視面板上。可用視圖如下:

▪ Albedo
▪ Emissive
▪ Realtime Intensity
▪ Realtime Direction
▪ Baked Intensity
▪ Baked Direction
▪ Baked Shadowmask


檢視面板(Inspector)


光照面板的Object頁籤重建後,所有光照相關的屬性都已改為顯示在對應的元件中。




比如Mesh Renderer元件帶有可折疊的標籤Lighting,裡面包含所有能影響網格與光照系統互動的屬性。啟用Lightmap Static屬性會將所有物體設為靜態(Static,同檢視面板的Static),用於光照貼圖計算。其中也包含光照貼圖相關的各種屬性。



我們也重建了Light元件,包含新的光照模式(Dynamic,Stationary,Static),標籤顯示也更友善。另外還重寫了所有提示資訊,使用者能更明白屬性的具體作用。

Light Explorer




Light Explorer是Unity 5.6 Beta 2中的新介面,可以查看編輯場景中的每個光照。這對於那些光照分佈在層級視圖上不同位置的大型複雜場景非常有用。Explorer中有4個列表,分別用於調整光照、反射探針、光照探針以及自發光材質。每個表都支援搜尋功能,幫開發者找到想編輯的物件,還能使用Lock Selection鎖定當下的選項,即使場景選中的物件改變也不會影響光照面板。這些列表還支援複數編輯,可同時選擇多個物件編輯某個屬性的值。

沒有留言:

張貼留言

關於我自己

我的相片
Unity台灣官方部落格 請上Facebook搜尋Unity Taiwan取得Unity中文的最新資訊