1. 程式人生 > >PostFX v2後期處理特效包:升級更驚艷的視覺效果

PostFX v2後期處理特效包:升級更驚艷的視覺效果

base64 收集 lec nag get fxaa template 問題 其它

https://mp.weixin.qq.com/s/BMkLLuagbhRSWspzeGhK7g

Post-Processing Stack後期處理特效包能夠輕松創建和調整高質量視覺效果,實現更為驚艷而逼真的特效。在Unity 2018.1 beta版本推出後,我們根據用戶的反饋為Post-Processing Stack後期處理特效包添加了一些功能,並修復了大量bug;我們還添加了針對移動端的支持、體積混合以及一整套為自定義用戶效果提供的框架。

Post-Processing Stack後期處理特效包的第二個版本,在本文中我們將簡稱為:PostFX v2。它將帶給用戶Asset Store資源商店工具包一樣的插件靈活性,同時又帶有Unity核心功能的更新能力。你也可以通過Unity Hub中的Templates模板功能進行獲取。

在Unity 2018.1中,PostFX v2擁有更高質量的特效、自帶強大重寫棧的自動體積混合功能,以及一個靈活的框架,用於編寫和發布自定義效果。Post-Processing Stack後期處理特效包能夠與LWRP、HDRP和內置渲染管線兼容使用。

技術分享圖片

左邊沒有使用後期處理功能,右邊使用了全棧的後期處理功能

PostFX的發展過程

PostFX v1 已經在Asset Store資源商店推出了一段時間,旨在收集用戶反饋、了解用戶工作流並提升質量和效率。這個過程給予了我們寶貴的信息,讓我們知道如何改進這個功能並將它進入下一階段。

PostFX v2改進了PostFX v1 的多個效果,我們將工作流更改為體積方法,以便能夠更輕松地在效果之間進行切換,而不需要多個帶有各自棧的攝像機。

PostFX v2在其開發過程中托管在GitHub,我們這樣做是為了使它能盡可能開放和透明,讓用戶提供反饋和貢獻。在這個過程中,我們得到了一些很不錯的反饋:超過2000個星數和330個fork。我們開放了450個身份票據和30個合並請求,其中包括從小型修復到大型PR等內容,我們的用戶自定義了棧並將他們的變更集發給了我們。感謝所有嘗試使用PostFX的用戶,感謝你們提供的反饋。

如何獲取PostFX

現在你可以從編輯器中的資源包管理器獲取PostFX,這樣得到的工具包是經過測試並驗證的版本。如果你想要PostFX v2的最新開發分支,那麽它仍在GitHub上托管著,你可以訪問Github獲取。

下載地址:https://github.com/Unity-Technologies/PostProcessing

Unity資源包管理器(Package Manager)是Unity 2017.2新增的功能,它是一個模塊化系統和API,能夠在項目中動態載入和更新Unity開發的新功能。Unity 2018.1以此為基礎更進一步,加入了全新發布的資源包管理器用戶界面(Package Manager User Interface)、Hub和項目模板(Project Templates),這些功能都將幫助你更快更高效地開啟新項目。

技術分享圖片

你也可以通過Unity Hub的模板獲取這個工具。項目模板能夠改變你在Unity中開啟新項目的方式。Unity項目模板功能旨在提高大多數用戶的“開箱即用”體驗。這些模板基於最佳常用實踐為不同的項目類型提供了相應的預選擇設置,例如移動端、高端PC、3D、2D和VR等。

你可以閱讀《Unity資源包管理器-全新項目管理方式》和《使用Unity 2018.1項目模板功能》,了解Unity資源包管理器以及如何充分利用模板功能。

內置工具

默認情況下,我們為你準備了一整套內置效果,用來自定義場景的外觀和感覺。這其中的不少效果自從PostFX v1發布後就經過了重寫,在這個新版本中還加入了一些新的組件。我們盡可能地將效果合並到了一個渲染pass中,而其它則仍是獨立的。我們提供了一些移動端專有選項,用以幫助在低端設備上優化。下面來了解下包含了哪些工具吧。

技術分享圖片

環境遮蔽(SAO、MSVO)

環境遮蔽(SAO、MSVO)能夠使互相接近的皺褶、洞穴、相交部分和平面的色彩變暗。這是因為在現實生活中,這類區域會擋住或遮蓋環境光,從而看起來更暗一些。

抗鋸齒(FXAA、SMAA、TAA)

抗鋸齒效果提供了一組算法,用來防止出現鋸齒現象,並為3D圖形提供更平滑的外觀。鋸齒現象是指在畫面中的線條呈現鋸齒狀或是帶有“梯形”的外觀效果。

在Post Processing Stack中提供的算法有:

  • 快速近似抗鋸齒算法(FXAA)

  • 子像素形態抗鋸齒算法(SMAA)

  • 短時抗鋸齒算法(TAA)

自動曝光

自動曝光效果會根據圖像所包含的亮度範圍來動態調整圖像的曝光。調整過程會在一段時間內逐漸發生。例如:當玩家從黑暗的通道中出來時,會被明亮的戶外光短暫地刺眼。相同的,當從明亮的場景移動到黑暗的場景時,“眼睛”會需要一些時間來調整。實際上,這個效果曾在Post Processing Stack v1叫作“眼睛適應”(Eye Adaptation)。

泛光效果

泛光效果效果會產生從圖像明亮區域的邊界延伸出的光線條紋,從而使攝像機或眼睛產生極其明亮的光亮幻覺。

色差

色差效果是由於攝像機鏡頭無法將所有顏色匯集到同一點而產生的。它會在邊緣部分以色彩“條紋”的樣子出現,從而分離圖像的黑暗部分和明亮部分。

色差效果便是用來仿制攝像機的這個瑕疵。它也經常用作藝術特效,作為攝像機效果的一部分。

顏色分級(LDR、HDR、CUBES)

顏色分級用於調整或校正最終圖像的色彩和亮度。你可以將這個過程看作類似在Instagram中應用濾鏡。

顏色分級效果帶有三個模式:

  • 低分辨率範圍(Low Definition Range):這個模式針對低端平臺使用,但它其實可以在任意平臺上使用。分級會應用於最終渲染幀上,並將其壓縮到0到1之間的強制範圍內,然後儲存在標準LUT中。

  • 高分辨率範圍:這個模式針對支持HDR渲染的平臺使用。所有顏色操作過程將應用於HDR,存儲在3D編碼日誌的LUT中,從而確保有足夠的覆蓋範圍和精準度(Alexa LogC El1000)。

  • 外部範圍:這個模式能讓你提供在外部軟件中編寫的自定義3D LUT。

景深

景深(Depth of Field)是個常見的後期處理效果,它模擬了攝像機鏡頭的對焦屬性。在現實生活中,攝像機只能以特定距離對焦一個物體對象,在攝像機較近或較遠的對象都會略微失焦。

粒度

粒度(Grain)效果是基於相幹梯度噪聲實現的。它常用於模擬電影畫面的明顯缺陷,也經常在恐怖題材遊戲中用於表現誇張的畫面效果。

鏡頭失真

鏡頭失真(Lens Distortion)效果通過使最終渲染圖像失真或不失真來模擬鏡頭形狀。

動態模糊

動態模糊(Motion Blur)是個常見後期處理效果,它模擬的效果是,當一個對象被攝像機拍攝且攝像機的移動速度比其曝光速度快時產生的圖像模糊效果。這個效果可以通過快速移動對象或是增長曝光時間產生。

屏幕空間反射

屏幕空間反射(Screen-space Reflection)是個通過重用屏幕空間數據來計算反射的技術。這個技術常用於制作更為簡單的反射效果,例如潮濕地板表面或水坑的反射效果。

暈影

在攝影學上,暈影(vignetting)是個專業術語,指的是使圖像邊緣相對於中心暗化和/或稀釋的效果。

組件

Post Process Layer

Post Process Layer組件位於你的攝像機上。你可以在Component -> Rendering -> Post-process Layer找到它。

Post Process Layer組件能夠分解不同的標題;通過設置觸發器(通常是攝像機Transform)和應用圖層來控制體積混合,也能應用所選的抗鋸齒方法並啟用霧效果。下方的額外“Toolkit”設置帶有一些工具用來將當前幀到處為EXR格式文件。最後的部分能讓你修改自定義效果的渲染順序。

技術分享圖片

Post Process Volume

在這個框架中,後期處理效果是通過使用本地體積和全局體積完成的。它能讓你給各個體積一個優先級和效果重寫集合,從而自動在場景中混合後期處理設置。例如:你可以在全局設置一個光照暈影效果,但當玩家進入洞穴時,你只需要在保持其它設置完好的情況下,重寫暈影的強度設置並增強其強度即可。

技術分享圖片

在本示例中,我們勾選了Global Volume上的“Is Global”選項,使得其它體積將從這個體積和Post Process Profile派生出來。然後我們創建了一個“Cave Area Profile”來使攝像機(觸發器)進入觸發器區域(由方塊碰撞體設置)時從“Global Profile”重寫效果。“Cave Area Profile”擁有一個混合距離集合和比Global Volume(全局體積)更高的優先度。

我們可以從下面視頻中看到,Post Process Volume組件是如何在場景中工作的。當攝像機進入體積時,全局設置被重寫,效果很好地混合了起來。


Post Process Debug

技術分享圖片

Post-Processing Stack還包含一個顯示器集合和調試視圖,用來幫助你正確設置效果並在輸出結果中調試問題。

技術分享圖片

創建自定義效果

該框架還能讓你編寫自定義後期處理效果並將它們插入到棧中,而無需修改代碼庫。當然所有針對框架編寫的效果,都能夠與體積混合功能有開箱即用的使用效果,除非你需要依賴循環實現的功能,否則它們都會在可編程腳本渲染管線SRP上自動運行。

下面是Unity工程師Keijiro的一些實驗效果:

技術分享圖片

實現自定義效果

技術分享圖片

添加風格化特效

與Cinemachine和Timeline結合使用

PostFx v2緊密地與編輯器的其它部分整合了起來。例如:Cinemachine會利用一個Cinemachine Post Processing Component實現整合。這二者都可以添加到Timeline中,從而使藝術家和設計師得到完整的創意控制。

技術分享圖片

在移動端運行

在移動端運行後期處理效果不是件易事。例如:環境遮蔽這樣的一些效果,即使在最高端的移動平臺運行,它的資源消耗也過於昂貴。

例如抗鋸齒、泛光、色差等這樣的效果,我們創建了“快速模式”,它能通過降低質量提高性能。我們還建議為顏色分級使用低分辨率範圍,盡可能降低其它效果的使用。我們目前正制作一個更為針對移動端的優化,它將在後續推出。

結語

PostFx v2能夠幫助開發者輕松創建並調整高質量視覺效果,實現驚艷和逼真的效果。體積混合功能使之能輕易地在體積間切換、重寫和混合不同的內置或自定義效果,歡迎大家使用!更多Unity最新功能介紹盡在Unity官方中文論壇(Unitychina.cn)!

PostFX v2後期處理特效包:升級更驚艷的視覺效果