2017年5月8日 星期一

Unity教學 - 低模場景打光與後製技巧

原文

@註:原文裡面有很多圖,由於沒有授權就不方便直接轉過來,因此除了影片外,我們只用中文描述整個過程。你可以另外開一頁原文來對照那些圖。

如何為低模場景打光



之前的Unity預計算即時GI系列受到了不錯的迴響。今天我們轉一篇開發者寫的Unity 5.5低模場景打光和後製技巧。



課前介紹


你可以瞭解到如下內容:


  • Unity中光照的基礎概念
  • 為場景設定預計算即時全域光照(Precomputed Realtime GI) 
  • 為動態(非靜態)物件增加光照探針(Light Probes)以使用預計算即時全域光照
  • 更改光照設定/顏色
  • 從Unity標準資源包中導入Images Effects
  • 設定攝像機的後處理圖像效果:
  • 環境光遮蔽(Ambient Occlusion)
  • 全域霧(Global Fog)
  • 景深(Depth of Field)
  • 色調映射(Tonemapping)
  • 抗鋸齒(Antialiasing)
  • 泛光(Bloom)
  • 色彩矯正定址貼圖(Color Correction Lookup Texture)
  • 暈影和色差(Vignette and Chromatic Aberration)
  • 調整場景顏色襯托不同的氛圍


教學使用的軟體:Unity 5.5和Photoshop CC 2017


1.確保將目標平台設為PC,Mac & Linux Standalone。
功能表File -> Build Settings,選擇“PC,Mac & Linux Standalone“,然後點Switch Platform按鈕切換平台。

2.啟用預計算即時GI(全域光照)
點Unity功能表Window -> Lighting打開Lighting介面,在Lighting介面選擇Scene頁籤。
打開Precomputed Realtime GI頁籤,設定即時解析度(Realtime Resolution)為0.5(解析度越小,全域光照預計算越快)
這裡建議在開發時可以將Realtime Resolution設得更低,在最後才設回0.5或更大。並將CPU Usage設為Medium。

關閉Baked GI

在介面底部取消打勾Auto,停止自動運算。

3.清除GI緩存

這樣做是因為場景可能未按預期進行烘焙。點功能表Edit -> Preferences,在GI Cache下點Clean Cache按鈕清除暫存。

4.使用預計算即時GI

在Hierarchy視圖選地表資源,並將它們設為靜態物件,以便使用預計算即時GI。對於非靜態資源可以使用光照探頭(Light Probes),後面會說明。

現在打開Lighting介面,啟用Auto Build。並等它算完(右下角會顯示藍色進度條)。代表地形正在預計算即時全域光照(Precomputed Realtime GI)或反射光照(Bounced Lighting)。

啟用Auto Build後,當場景發生改變時,例如移動地形,場景會自動重算即時全域光照。

5.確保將顏色空間(Color Space)設為線性(Linear)

點功能表Edit > Project Settings > Player,將Other Settings下的Color Space設為Linear。這裡設為Linear效果會比Gamma更佳。

6.更改光照設定

選取場景中的定向光(Directional Light),將它拖到Lighting介面Scene頁籤裡的Sun欄位,作為一個太陽光。
當使用一個程式化的天空盒時(Procedural Skybox),你可以指定一個方向光來表示“太陽”的方向(或是照亮場景的大型遠距離光源)。如果沒設定該值,則場景中最亮的方向光將被指定為太陽光。

另外,將Ambient Source改為 Color,並設定顏色為您喜歡的顏色(本例使用#896262)。它用於改變場景中的環境光顏色。

在Hierarchy視窗中選擇剛剛的太陽,將它依照X和Y軸旋轉來改變場景時間和氛圍。
調整光線和陰影直到效果滿意。

7.增加光照探頭

非靜態(移動的)物件使用光照探頭(Light Probes)來獲取反射光(預計算即時GI)資料。場景中所有的樹、石頭、蘑菇上都使用了光照探頭,即使它們靜止不動。最好為小物件使用光照探頭以提高效能,包括記憶體耗用和全域光照構建時間。

在Hierarchy視窗依次點Create > Light > Light Probe Group。

選Light Probe Group並將它移到場景資源(樹、石頭、等等)所在的地方。並將光照探頭放在地面,以確保所有物體都將受到預計算即時全域光照的影響。

選Light Probe Group,啟用Edit Light Probes模式。

在檢視面板點擊按鈕進入編輯模式,或滑鼠左鍵點光照探頭上黃色的球來自動啟用Edit Light Probes模式。同時按住SHIFT鍵可以複選多個部分。

這裡選一面的所有光照探頭,將它們移動到資源(樹、石頭等等)的邊界位置。按這種方式移動了所有面,讓主場景的非靜態資源如樹、石頭等等,都在光照探頭組內部。因此,它們可以通過預計算即時全域光照獲得地面的反射光。

在正交視圖(Orthographic View)下選擇整面的光照探頭,複製(按住CTRL+SHIFT)並移動幾次,以覆蓋主場景的所有非靜態資源。

複製並移動光照探頭後,整個Light Probe Group就完成

刪除或移動多個光照探頭還有其它方式,但上面這種方式可用於儘快創建示例場景。在層級視圖中取消選擇Light Probe Group,光照探頭會變灰色

接下來測試光照探頭如何運作,例如有多少光從地面反彈到石頭上。通常禁用光照探頭組Gizmo會有助於更好地觀察場景。在場景視圖中的Gizmos下拉式功能表中取消勾選LightProbeGroup。

現在可以透過檢視面板上關閉或啟用Light Probe Group組件來測試光照探頭組的效果。可以清楚看到石頭從地面上反射出綠光。這是預計算即時全域光照對靜態地形和使用光照探頭組的非靜態物體所帶來的影響。

如何為低多邊形場景設置後處理


1.首先導入後製包資源
選擇Assets > Import Package > Effects。

或是可以從Unity官網下載標準資源包,導入所需的特效資源。將Image Effects導入到項目中。

在鏡頭上加上後處理圖像特效

加入你想要的特效,如果想瞭解每個效果是甚麼功能,也可以觀看另一個教學

1)加上Screen Space Ambient Occlusion,在Hierarchy視窗選Main Camera,在檢視面板中點Add Component,加上Screen Space Ambient Occlusion組件。

可以調整設定以讓場景效果更好。可以參考原文的設定。 

2)加上Global Fog元件,點Add Component按鈕並搜索Global Fog。

另外,Lighting介面Scene頁籤下的Fog,以設定Global Fog Color和其他霧效屬性。

3)加上Depth of Field組件,點Add Component並且搜索Depth of Field(Lens Blur,Scatter…)

調整設定讓場景效果是你要的。比如Depth of Field設定焦點在篝火上。

4)加上Tonemapping組件

5)加上Antialiasing並保持預設值。

6)加上Bloom,我通常將Threshold設為0.6。

7)加上Color Correction (3D Lookup…),並保持預設值。

8)加上Vignette and Chromatic Aberration。調整到想要的效果

3.設定 Color Correction Lookup Texture

拍一張螢幕抓圖,打開Photoshop貼上剛剛的圖。然後調整圖像的Adjustments到想要的場景氛圍。可以嘗試一些不同的感覺,作者只稍微改變一點亮度/對比度和色彩平衡

調整好後,需要匯入Color Lookup Texture到Photoshop中的截圖上。可以在Unity專案中找到Color Lookup Texture。在Assets > Standard Assets > Image Effects > Textures目錄下有名為Neautral3D16的貼圖。

如果找不到該圖,請確保之前有按照我的流程從Standard Assets資源包匯入了Image Effects。

導入Color Lookup Texture到Photoshop後,確保貼圖層級在Image Adjustment Effects的下方。

然後選擇Color Lookup Texture並用Crop Tool進行裁剪,僅保留該貼圖。

選擇File -> Save As…將檔存為.PNG格式(任和名稱)用於Unity專案,也可以放在新資料夾。

現在打開Unity,在層級視圖選中Main Camera,在檢視面板中打開Color Correction Lookup (Script)。將剛剛存的Color Lookup Texture拖拽至” None (Texture 2D)”的方形區域上,並且點擊“Conver and Apply”。

你就會看到調整後的效果。

@註:Unity有釋出新版本的後製工具,會比Unity內建的後製工具效能好很多,也支援VR。建議學習過這個流程之後,也可以換成新的後製工具。要注意的新的工具設定流程是完全不同的。

沒有留言:

張貼留言

關於我自己

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