UE5后期處理著色器 | 場(chǎng)景模糊和銳化濾鏡制作
讓我們來(lái)看看模糊和銳化效果是如何工作?
我們將從采樣場(chǎng)景本身開始,我們會(huì)對(duì)場(chǎng)景進(jìn)行多次采樣,然后把它們結(jié)合起來(lái)樣本一起創(chuàng)建一個(gè)模糊的圖像對(duì)于這個(gè)著色器,我們要做7個(gè)樣本我們將在當(dāng)前像素的正中央做一個(gè)樣本渲染,然后我們?cè)僮隽鶄€(gè)樣本在樣本周圍形成一個(gè)環(huán)中間的樣本比邊緣的樣本,更重然后我們把所有的樣本混合在一起。我們的結(jié)果是模糊的,所以我們首先要做的是如何得到這7個(gè)的uv坐標(biāo)樣本。一旦我們有了uv坐標(biāo),我們將使用它們對(duì)場(chǎng)景進(jìn)行采樣第三步,我們將7個(gè)樣本組合在一起為了創(chuàng)建一個(gè)模糊的圖像,我們有一個(gè)簡(jiǎn)單的三步過(guò)程

我們首先要做的是弄清楚如何獲取屏幕樣本坐標(biāo),以使我們的場(chǎng)景采樣七次
01-首先我們按下2鍵然后得到7個(gè)常數(shù)向量?jī)蓚€(gè)值,這些值代表我們制作的每個(gè)樣本我們知道第一個(gè)樣本在正中間所以它可以是它的值可以是0那么這兩個(gè)將代表左邊和右邊的樣本值設(shè)為2

02-接下來(lái)將這些值轉(zhuǎn)換為實(shí)際像素的值,為了做到這一點(diǎn),我們需要添加一個(gè)節(jié)點(diǎn)到我們的場(chǎng)景稱為屏幕分辨率可見分辨率值會(huì)告訴我們像素的數(shù)量以及我們當(dāng)前所處的視口中向下的像素?cái)?shù)渲染并獲得實(shí)際像素的大小,

03-我們需要做的就是用1除以可見屏幕分辨率,所以我們?cè)谶@里添加一個(gè)除法節(jié)點(diǎn)用我們的可視分辨率和1除以屏幕可見分辨率將給我們單個(gè)像素的大小

04-現(xiàn)在為了創(chuàng)建正確的像素偏移,我們只需要乘以每個(gè)值都取決于屏幕像素大小所以我要繼續(xù),加一個(gè)乘法我們要把每一個(gè)相乘。好的,現(xiàn)在我們有了7個(gè)像素的偏移,

05-剩下要做的就是添加這些偏移到我們的紋理坐標(biāo)所以我要添加一個(gè)紋理坐標(biāo)節(jié)點(diǎn),然后我們將獲得紋理坐標(biāo)并將它與我們的7個(gè)像素相加偏移量

06-我們可以用來(lái)對(duì)場(chǎng)景進(jìn)行采樣這是我們創(chuàng)建uv的第一步,uv坐標(biāo)允許我們?cè)谥行牡膱?chǎng)景中取樣然后是圍繞中心的另外六個(gè)位置現(xiàn)在我們來(lái)進(jìn)行第二步我們將用到這些uv坐標(biāo)來(lái)采樣我們的場(chǎng)景,這是非常簡(jiǎn)單的,我們只需要添加一個(gè)場(chǎng)景紋理節(jié)點(diǎn),我們將設(shè)置場(chǎng)景紋理節(jié)點(diǎn)到后期處理輸入0,這將給我們一個(gè)樣本


07-取樣本,乘以一個(gè)小于1的值在這個(gè)例子中,我需要6個(gè)樣本,總共是0.7,我將設(shè)置中心的權(quán)重樣本值為0.3,如果我用0.7除以6,就得到這個(gè)值這就是我們得到的值0.11666我要把它四舍五入,所以我們?cè)偌由弦粋€(gè)乘法節(jié)點(diǎn)我們要乘以0.1166

08-現(xiàn)在剩下要做的就是添加我們的七個(gè)樣本一起我們把前兩個(gè)和第三個(gè)相加,插入根節(jié)點(diǎn)自發(fā)光點(diǎn)擊保存

可以看到我們的場(chǎng)景模糊前后對(duì)比,

如果你想控制整個(gè)效果,我們可以使用lerp節(jié)點(diǎn)在模糊版本和普通版本之間進(jìn)行混合我們來(lái)添加一個(gè)線性插值節(jié)點(diǎn)我們把模糊的版本代入b然后我可以先取第一個(gè)樣本,然后再乘以

如果我們給數(shù)值為負(fù)數(shù)我們效果是在銳化;如果0是一個(gè)普通的場(chǎng)景1是一個(gè)模糊的場(chǎng)景

完整版請(qǐng)移步公眾號(hào):Game藝視界