【Unity】ShaderGraphでSFにありそうなノイズを作成する

はじめに

今回はSFにありそうなノイズシェーダーを作成していきます。

環境は Unity 2019.3.0f3

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

UnlitGraph を使用しています。

ノード作成

ノイズ部分です

UVにPosterizeノードを使用してそれをSimlpe Noizeにつなぐことでモザイクみたいなものが作成できます。

あとはそれを複数作成し、Subtractノードを使用することでノイズっぽいものを作成できます

f:id:Brave345:20200622171131p:plain

ノイズをちらつかせる部分です

作成したノイズにTimeをfrac(0~1に変換)にしたものを乗算しそれにRandom Rangeでランダムな値を返すことでちらつかせる表現をしています f:id:Brave345:20200622171127p:plain

ノード完成図です

f:id:Brave345:20200622171500g:plain

完成

f:id:Brave345:20200622171614g:plain

マテリアルの設定はこんな感じ

f:id:Brave345:20200622171136p:plain

【Unity】ShaderGraphで色相を変更する

はじめに

今回は色相を変更するシェーダーを作成していきます。

環境は Unity 2019.3.0f3

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

UnlitGraph を使用しています。

ノード作成

Hueノードで色相を変更できます

Hueノードは現在の色相からどのくらい変更するか指定します

f:id:Brave345:20200706123504p:plain

docs.unity3d.com

完成

f:id:Brave345:20200706123356g:plain

【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