【Unity】ShaderGraphで放射状ブラーを作成する

はじめに

今回は放射状ブラー(ラジアルブラー)を作成していきます。

環境は Unity 2019.3.0f3

Universal Render Pipeline(テンプレートのプロジェクトです)

UnlitGraph を使用しています。

ノード作成

放射状ブラー部分です

ブラーはCustom functionノードを使用して作成しています。

f:id:Brave345:20200624111709p:plain

result = 0;

for(int i = 0; i < Samples; i++)
{
float scalse = 1.0f - BlurStrength * 0.1f * (i / (float)(Samples - 1));

result +=   SAMPLE_TEXTURE2D(MainTex,SamplesState,(UV - Center) * scalse + Center);

}

result /= Samples;

マスク部分です。

Lerpノードを使用してマスクテクスチャの白い部分だけ放射状ブラーがかかります。

f:id:Brave345:20200624111730p:plain

ノードの完成図です

f:id:Brave345:20200624111744p:plain

完成

f:id:Brave345:20200623165035g:plain

マテリアルはこんな感じです

f:id:Brave345:20200624113114p:plain