前言
在我們於Unity裡面製作場景的時候,常常會覺得顏色或是哪個地方的顏色不對,如果Unity裡面有photoshop就好了!可以依照需求調整顏色或是製作特效,其實在Unity裡面有個東西叫做Post Processing其實就像是Unity的photoshop,可以調整常見的亮度、對比、白平衡、顏色等等,也可以加一些鏡頭上的效果讓整個場景更加漂亮、豐富。
目的
因為在Post Processing裡面的項目以及細節相當的多,在這次的練習中我們先抓幾個比較常用到的效果來製作,在Post – processing裡面有分四個大類
- Color Correction
- Lens Stuff
- Camera
- Effects

大致上了解可以使用的效果以後我們就可以開始使用post processing了,首先我們需要做一些前置作業。我們可以先在Asset Store 裡面下載一個免費的場景作為練習。
可以從這裡下載免費的2D風格道路場景,開始後可以看到一個還沒有加入效果的場景。


- 在Hieracrchy表單裡面點選右鍵新建Global Volume ,這時候在Volume新建一個新的Profile 並儲存檔案,如果要開始新增效果的話就可以按Add Override並選擇Post processing,就可以依照需求進行增加效果。

在這邊我隨便加了幾個特效來看看發現什麼效果都沒有發生,這是因為我們在HDRP或是URP裡面有地方需要設定。

如果是用HDRP的話,我們從Render裡面找到 HD Render Pipline Wizard就可以看到有出現很多的錯誤在,這時候我們需要Fix All 再回來看就會發現剛剛的效果可以呈現了。
如果是2019.3.12 f1的版本之前的話,可以在Camera裡面找到有個Post Processing的選項打勾即可出現效果。

在Volume的部分有個東西相當有趣,在我們製作post processing的時候有World以及Local可以選擇,如果選擇Local的話則可以增加Collider讓整個Volume在所建立的範圍內,這邊使用Box的collider作為示範

在我們所建立的Box Collider可以看到當我們進入範圍內的時候才會出現所做的Post processing效果,這個方法可以運用在一個場景裡面有不同的效果想要呈現,譬如同一個場景裡面有水裡面、洞穴、或是跟主要場景不同的環境,都可以用Local的Volume來製作post processing讓整個場景的豐富度增加。

2. 接著我們來實作Post processing四大類裡面的Color Correction部分,這類別的效果通常也是在調整場景視覺上最常用到的。
- Tonemapping

Tonemapping主要是讓整個場景的Tone調有所變化,在Tonemapping裡面有Neutral、ACES、Custom、Externel四種效果,其中以ACES的效果最常用到而Custom則可以依照自己的需求調整Tone調。


- ColorAdjustments
ColorAdjustmens比較像我們常在Photoshop裡面使用的[亮度/ 對比]等效果,其中較常用到的是
Post Exposure – 曝光度
Contrast – 對比
Color Filter – 彩色濾光片
Hue Shift – 色相轉移
Saturation – 飽和度

- Color Curves
Color Curves也是調整顏色的好用工具之一,我們可以在裡面選擇Master(整體顏色)或是依照RGB三種原色的分類來進行曲線的調整,在想要調整的類別裡面按下Override就可以改變曲線的幅度並新增節點。

其中值得一提的是在Unity裡面也是有抽色的功能的,方法很簡單。我們在Color Curves裡面選擇到Hue Vs Sat的模式,接著將整體顏色往下拉就會將顏色抽調變成黑白色,這時候如果想要留下某些顏色則可以在色譜上面將該色拉高,闢如下圖就是留下綠色的效果。

- Lift , Gamma , Gain
Lift , Gamma , Gain顧名思義就是提升Gamma等明度的部分,也可以依照需求讓某些顏色變得更偏所需要的顏色,以下為對比照可以看看到原本比較偏綠的部分我將其調整為較為藍綠的顏色。


- Shadows , Midtones , Highlights

這個特效主要是調整陰影、中間色調 、 高光,也是在Photoshop中常見到的效果,特別的是Shadow跟Hightlight的部分可以設定Limits可以看到有曲線光譜可以參考調整,大家可以看到原本地磚的顏色比較不顯眼,經過調整以後整個地磚的顏色都亮了起來。

- Split Toning
Split Toning是一個可以改變Shadows 跟Highlights顏色的特效,比較特別的是它還有一個Balance可以調整出高光跟陰影顏色中的平衡。

2. 接著我們來設定Lens Stuff的部分,其實在這邊我們最常用的比較少一點,主要都是輔助的方面,雖然有很多細節可以詳細研究,但是這次的練習我們先介紹幾個比較常用的。
- Depth Of Field
Depth Of Field 故名思議就是景深的意思,在需要focus的物體上面景深就代表了相當重要的腳色。


- Motion Blur
Motion Blur的效果在座遊戲的時候非常常用到,加了Motion blur以後可以輕易地做到速度感,讓人在視覺上感覺得第三人稱的移動感。


3. Camera的部分我們最需要用到的就是Anti-Aliasing(抗鋸齒)
- Anti – Aliasing
這個效果只能加在Camera上面,不像其他的需要加在Volume上面, 抗鋸齒的效果在3D場景上面算是相當重要的環節,在鏡頭下的3D上面其實很多模型的Render出來並不會這麼的圓滑,這時候就需要Anti-Aliasing來讓畫面看起來更加真實。

下面是 Anti-Aliasing 的三種主要效果,依照效能以及場景需求可以選擇比較適合的抗鋸齒模式,其中以SMAA的模式效果最好。

3. Effect算是post-processing裡面最有效果的部分了,雖然effect效果很好但是也不建議加太多,如果要貼近真實世界的話還是需要酌量使用,有時候使用過多的話反而顯得更不真實。
- Bloom
Bloom是一個讓畫面可以像沙龍照一樣霧濛濛的效果,如果material是有HDR發光效果的話可以讓發光的物體可以更加光亮,主要調整是在Threshold(控制閥)、Intensity(強度)、Scatter(散開)這三個調整上面,主要預設的Tint是白色,如果今天場景的需求也可以調整顏色讓反光效果顏色變得不一樣。

下圖可以看到,我將雲的material加上了HDR發光顏色,看起來更加閃閃發亮。

這邊值得一提的是Bloom裡面有一個Lens Dirt,可以增加Dirt Texture讓反光的效果加上了另一個圖層的感覺,產生出髒污、痕跡的效果,相當的有趣。

從下圖可以看到加了Lens Dirt的Texture以後Bloom的效果可以說相當的不一樣啊,如果有興趣的人可以到這裡下載Lens Dirt實作看看。

- Vignette
Vignette這個效果很像vintage的感覺可以讓邊邊依照自己想要的形狀進行羽化、暗化,調整Smoothness、Center等數值的話還可以成現象在瞄準視窗看到的畫面,這個效果用得巧的話也是一個相當有趣的效果。


結論
在Unity的3D世界裡面因為沒有加入任何post-processing的緣故常常會覺得不夠真實或是不夠漂亮,使用Unity的時候常常會覺得很想要讓畫面看起來更加豐富,這時候Post- Processing就是你最佳的選擇,本篇的重點是在分類主要常用的四大類效果,其實每一個效果互相配合也可以更加深入研究,但依照自己場景的需求關係,還是得多加嘗試以及實作才能調整出最佳的狀態,但是猶如Photoshop可以調整色彩畫面甚至畫面變形等等都是很棒的畫面特效,如果常使用Adobe系列的用了Unity的Post-Processing可以說是如魚得水,只要掌握幾個主要的效果就可以簡單上手的調整理想中的畫面呈現。