1. 程式人生 > >Unity中的後期處理:PostProcessing

Unity中的後期處理:PostProcessing

“想要實現這個效果,讓我們來編寫一個Shader。。”
“Shader???”
相信絕大多數開發者都有看過那些炫酷的效果而躍躍欲試卻又對Shader程式碼望而卻步的經歷,新版本的unity新增的PostProcessing元件,讓許多人看到了希望,雖然效果數量有限,卻對於開發來說有很大的收益。

安裝PostProcessing

PostProcessing是unity內建的後期效果增強元件,可以在極短的時間內得到各種常用特效的效果,對於編寫Shader的苦手(比如在下)來說,確實是個天大的福音了。第一次接觸PostProcessing與實際開發中,效果確實驚豔到了,之後PostProcessing就成了遊戲開發的必備元件==。PostProcessing可以在資源包管理器中直接安裝得到。

01

新工程請在All中找到PostProcessing並點選右上角的install即可,我的已經安裝完畢,所以介面有些不同,如果版本不一致沒有資源包的話可以訪問PostProcessing的Github頁面: PostProcessing 按照說明將PostProcessing拖入工程資料夾就可以用了。附上官方效果對比:

使用前
使用後

這麼看效果還是很明顯的。雖然效果是在大型專案展示的,但是PostProcessing完全可以用在小型專案中構建各種各樣出色的效果。

使用PostProcessing

  • PostProcessing Layer

首先我們需要在相機中新增一個Post-process Layer元件來渲染相機影象。

Post-process Layer

Trigger觸發器預設是相機本身,如果有需要可以設定為其他物體,如掛載到角色上面,可以實現進入特定區域觸發特效,這個後面再說。Layer是一個很重要也很容易忽略的角色,必須保證postprocessing volume所處層級與此項相同,一般來說建議設定專用層以提高渲染效能。其次的抗鋸齒 延遲霧效等等看專案情況調整即可。

  • PostProcessing volume

postprocessingVolume

Volume分為全域性和區域性兩種實現方式,全域性只需選中Is Global選項。區域性需要掛載Collider3D組(記得選中Is Trigger)件並取消Is Global選項,當PostProcessing Layer中的觸發器(Trigger)進入Collider中就能看到效果了,可以實現洞穴等場景的變換特效。(切記把掛載PostProcessing Volume元件的物體Layer設定為PostProcessing Layer中的對應Layer)

Blend Distance用來實現特效的漸弱,使特效自然漸進的出場或退場。Weight影響權重,0完全不起作用,1效果全開。效果會在多個volume混合時根據這幾個屬性數值進行疊加。

profile就是特效的配置檔案了,點選new即可建立新的特效配置,之後點選Add effect->Unity即可看到PostProcessing提供的11中特效。直接點選就可以再面板中看到相應的特效,展開即可進行編輯。

effect

All生效所有屬性,None禁用所有屬性,也可以只用其中的某些屬性,選中相應的屬性欄就可以了。
下面簡單說一說這些特效,如果用到某個特效再細細分析。

Post-process特效

  • Ambient Occlusion 環境光遮罩:用來使像是世界中難以照射到光線的角落,交叉點等地方變暗。
  • Anti aliasing:抗鋸齒:抗鋸齒功能提供的演算法可以是鋸齒感明顯的邊緣更加平滑,雖然鋸齒感減少,卻會使物體變得模糊。
  • Auto Exposure 自動曝光:模擬人眼適應各種黑暗與光亮的效果,比如從黑暗的隧道出來時,人眼會有短暫時間的炫目。
  • Bloom 輝光:最常用的Post-process特效之一,效果和他的名字一樣,提供影象從明亮邊緣擴散的效果,Dirtiness可以模擬汙漬和灰塵來衍生Bloom特效,在FPS遊戲中常見這類效果。

screenshot-bloom

屬性 功能
Intensity 輝光的強度
Threshold 過濾掉小於此光照強度的畫素點,注: 該值以伽馬空間表示
Soft Knee 在低於/高於閾值的漸變(0 =硬閾值,1 =軟閾值)之間進行轉換
Clamp 限制輝光畫素的數量,該值以伽馬空間表示
Diffusion 以與螢幕解析度無關的方式改變遮蔽效果的程度
Anamorphic Ratio 通過垂直(在範圍[-1,0]中)或水平(在範圍[0,1]中)縮放輝光來模擬變形鏡頭的效果
Color 輝光的色調
Fast Mode 通過降低效果質量來提升表現
Texture 模擬汙垢為鏡片新增汙跡或灰塵
Intensity 鏡頭汙漬的數量
  • Chromatic Aberration 色差:在邊界產生一些顏色條紋,模擬相機鏡頭為顏色沒有匯聚的缺陷行為來增加藝術性的效果,可以用來模擬中毒特效。

screenshot-chroma

  • Color Grading 顏色分級:另一個經常用到的特效,用於校正鏡頭中的顏色與亮度,來實現電影或海報效果,可以理解為手機中的何種濾鏡。需要一定的專業基礎才能玩轉,但是通過調整Tonemapping(色調對映)的mod可以快速實現一些效果。

screenshot-grading

  • Deferred Fog 延時霧效:霧是根據與相機的距離將顏色疊加到物件上的效果。 這用於模擬室外環境中的霧或霧,並且通常還用於在攝像機的遠剪裁平面向前移動以提高效能時隱藏物件的剪裁。

screenshot-fog

  • Depth of Field 景深:常用特效之一,模擬相機鏡頭的對焦效果而產生模糊感。模糊不僅給出了關於物體距離的視覺提示,而且還引入了散景,這是令人愉悅的視覺偽像。

screenshot-dof

屬性 功能
Focus Distance 對焦距離
Aperture 孔徑比(稱為f-stop或f-number)。值越小,景深越淺
Focal Length 鏡頭和膠片之間的距離。 值越大,景深越淺
Max Blur Size 散景濾鏡的卷積核大小,決定散景的最大半徑
  • Grain 顆粒效果:模擬老電影螢幕上的顆粒感,用於模擬老式顯像裝置。
  • Lens Distortion 鏡頭失真:此效果通過扭曲或不失真最終渲染圖片來模擬鏡頭的形狀。
  • screenshot-distortion

  • Motion Blur 運動模糊:“運動模糊”是一種常見的後處理效果,可以模擬當相機拍攝的物件移動得比相機的曝光時間快時影象的模糊。運動模糊用於在大多數型別的遊戲中產生微妙的效果,但在一些型別中被誇大,例如賽車遊戲。

screenshot-motionblur

  • Screen space Reflections 螢幕空間反射:螢幕空間反射是一種重用螢幕空間資料來計算反射的技術。 它通常用於產生更微妙的反射,例如在潮溼的地板表面或水坑中。

screenshot-ssr

  • Vignette 暈影:在攝影中,暈影是用於與中心相比朝向影象邊緣變暗和/或去飽和的術語。經常用於藝術效果,例如將焦點繪製到影象的中心。

screenshot-vignette

以上只是對PostProcessing的一些簡介,PostProcessing是個複雜的元件,要想搞清全部特效需要大量的實踐與相關的專業知識,對於初學者或想要快速構建遊戲效果的人來說,認識PostProcessing特效和新增特效只是最基本的一步。因為調整PostProcessing是個細緻且漫長的過程,請務必在遊戲開發接近尾聲時再斟酌效果,調整引數。

相關推薦

Unity中的後期處理PostProcessing

“想要實現這個效果,讓我們來編寫一個Shader。。” “Shader???” 相信絕大多數開發者都有看過那些炫酷的效果而躍躍欲試卻又對Shader程式碼望而卻步的經歷,新版本的unity新增的PostProcessing元件,讓許多人看到了希望,雖然效果數量有限,卻對於開發來說有很大的收益。 安裝PostP

Unity Shader-後處理簡單的顏色調整(亮度,飽和度,對比度)

版權宣告:歡迎轉載,共同進步。請註明出處:http://blog.csdn.net/puppet_master https://blog.csdn.net/puppet_master/article/details/52423905   好久沒堅持寫blog了,是時候開始擼一波新博

Unity Shader-後處理景深

一.簡介 景深一直是我最喜歡的效果之一,最早接觸CE3的時候,發現CE引擎預設就支援景深的效果,當時感覺這個效果特別酷炫,如今投身於Unity的懷抱中,準備用Unity實現以下傳說中的景深效果。 所謂景深,是攝影的一個專業術語:在聚焦完成後,在焦點前後的範圍內都能形

Unity圖集處理小工具批量設定圖集的MaxSize及壓縮格式

如題一個編輯器小工具,主要在於Editor介面的使用和判斷一張圖片有無alpha通道,下面直接上程式碼: #region atlas deal public static int CompressQuality = 50; public

Java Swing界面編程(25)---事件處理鼠標事件及監聽處理

鼠標右鍵 util else if this setbounds user swing 事件處理 dem 假設想對一個鼠標的操作進行監聽,假設鼠標按下、松開等。則能夠使用MouseListener接口。 package com.beyole.util; import

海量數據處理Hash映射 + Hash_map統計 + 堆/快速/歸並排序

針對 內存 value 快速 round div ack 數據處理 訪問 海量日誌數據,提取出某日訪問百度次數最多的那個IP。 既然是海量數據處理,那麽可想而知,給我們的數據那就一定是海量的。 針對這個數據的海量,我們如何著手呢?對的,無非就是分而治之/hash映射 +

前端數據處理參數的獲取和組織發送

字符 字符串 div ren pri 其他 發送 其中 處理 1.var t = $(this); 當前DOM節點為開始 2.var uid = t.parent("dd).attr("perid"); 利用jquery獲取當前DOM節點父子,兄弟的屬性值 3."<d

DICOM醫學圖像處理fo-dicom網絡傳輸之 C-Echo and C-Store

通訊 過程 reading 網絡傳輸 基類 對象 last 控制流程 con 背景: 上一篇博文對DICOM中的網絡傳輸進行了介紹。主要參照DCMTK Wiki中的英文原文。通過對照DCMTK與fo-dicom兩個開源庫對DICOM標準的詳細實現,對理解

linux故障處理磁盤資源耗盡故障

i linux 節點 故障 小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------謝謝您的參考,如有疑問,歡迎交流 故障原因:磁盤空間已被大量的數據沾滿空間耗

【邊做項目邊學Android】異常處理android.os.NetworkOnMainThreadException--多線程問題

不能 timeout throws extend dex com order trace res 一切搞定。以為高枕無憂了,結果還是有問題! log開始報錯了,獲取更新信息異常。。!debug一下。發現Exception:android.os.NetworkOnM

python數據處理pandas基礎

log eat ges 處理 保留 sed lang sce rop 本文資料來源:   Python for Data Anylysis: Chapter 5   10 mintues to pandas: http://pandas.pydata.org/pandas-

Error處理 重提No Launcher activity found!

tag rgb ror center html 代碼 min sdn package Error處理: 重提No Launcher activity found! 重提No Launcher activity found!錯誤提示,及解決的方法

Unity (一) AnimatorCurves : 曲線運用的兩個案例

組件 過程 以及 nim 角色 技術 span png -1 案例1: 在角色死亡動畫中,角色倒地,然而碰撞體並沒有進行調整,如果對此角色位置進行射擊,還會有碰撞檢測,為了避免這種問題,可以運用曲線Curves將角色的碰撞體進行調整 Curves:曲線

Unity版本號5.5.0

知新樹 寧金峰環境配置:Vuforia package包,sdk,jdk配置好。準備工作:下載vuforia官網Scanner apk;打印識別圖一張。識別圖:下載地址如下:vuforia-downloads-tools-vuforia objcet scanner將該apk安裝到安卓系統機中後啟動後,點擊右

DICOM醫學圖像處理WEB PACS初談

tails 操作 www urn 配置文件 公司 類型 正是 除了 背景: 周末看到了一篇原公司同事的文章,講的是關於新的互聯網形勢下的PACS系統。正好上一篇專欄文章也提到了有想搭建一個worklist服務器的沖動,所以就翻箱倒櫃將原本學生時代做課題

IDEA中 Spark 讀Hbase 報錯處理

ado htable client ets rim ogg expec zookeep ati SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 17/11/19 14:25:57 E

34字符串處理解碼

class info 分享圖片 圖片 技術 body log com pos 34字符串處理:解碼

大數據采集、清洗、處理使用MapReduce進行離線數據分析完整案例

大數據 Hadoop MapReduce 數據清洗 離線數據分析 [TOC] 1 大數據處理的常用方法 大數據處理目前比較流行的是兩種方法,一種是離線處理,一種是在線處理,基本處理架構如下: 在互聯網應用中,不管是哪一種處理方式,其基本的數據來源都是日誌數據,例如對於web應用來說,則

黑金AX301開發板視頻圖像處理探索

SDR 補充 cnblogs 一次 防止 創建 sdram 都是 tro OV7670攝像頭: SCCB協議:https://www.cnblogs.com/aslmer/p/5965229.html SCCB協議有兩線也有三線,兩線為SIO_C與SIO_D,三線為SI

Error處理 android.media.MediaRecorder.start(Native Method) 報錯start failed: -19

bsp RM hand apt zygote utf use failed 解決方法 spydroid-android測試在android4.0系統上報錯 [html] view plain copy start failed: -19 而且也發現,在