Unity3D URP 的后處理——Render Feature

前言
? ? URP的后處理需要依賴RendererFeature,我們需要創(chuàng)建兩個類分別繼承ScriptableRendererFeature和ScriptableRenderPass。
? ?為了方便調(diào)節(jié)參數(shù),再創(chuàng)建一個類繼承VolumeComponent,將參數(shù)寫在這個類里,后面就可以直接在GlobalVolumeProfile上調(diào)參數(shù)。
1、創(chuàng)建ScriptableRendererFeature
????創(chuàng)建TestRendererFeature繼承ScriptableRendererFeature并實(shí)現(xiàn)抽象方法,
????實(shí)例化TestRenderPass并做相應(yīng)設(shè)置。
TestRendererFeature類完成!
2、創(chuàng)建ScriptableRenderPass
????創(chuàng)建TestRenderPass繼承ScriptableRenderPass并實(shí)現(xiàn)抽象方法,為了方便操作將兩個類放在了同一個文件。增加構(gòu)造方法和Setup方法供TestRendererFeature使用。
主要邏輯在Execute中處理,在這里將屏幕渲染圖和參數(shù)傳給shader處理,直接代碼吧。
3、創(chuàng)建VolumeComponent
????創(chuàng)建TestVolume繼承VolumeComponent并實(shí)現(xiàn)接口。將需要暴露的參數(shù)定義好。
注意參數(shù)類型必須繼承自VolumeParameter。大部分類型Unity已經(jīng)實(shí)現(xiàn),如果有特殊需求可以自己定義。
4、創(chuàng)建后處理shader
????效果就簡單的將rgb做一個偏移吧,shader如下
5、設(shè)置
????創(chuàng)建一個材質(zhì)Test,把上面創(chuàng)建的Test shader給它。
? ? 然后

設(shè)置Volume



結(jié)束!