【Unity】ShaderGraphで彩度を変更する

はじめに

今回は彩度を変更させるシェーダーを作成していきます。

環境は Unity 2019.3.0f3

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

UnlitGraph を使用しています。

ノード作成

Saturationノードを使用することで彩度を変更できます

値は0~1内で設定します

f:id:Brave345:20200710173637p:plain

完成

f:id:Brave345:20200710173609g:plain

【Unity】ShaderGraphでSFでありそうなディゾルブシェーダーを作成する

はじめに

今回はShaderGraphでSFでありそうなディゾルブシェーダーを作成していきます。

環境は Unity 2019.3.0f3

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

UnlitGraph を使用しています。

ノード作成

ノイズ部分です

f:id:Brave345:20200624161856p:plain

オブジェクトの高さにそってディゾルブする部分です

f:id:Brave345:20200624161852p:plain

f:id:Brave345:20200624161848p:plain

オブジェクトの高さにそってディゾルブするやり方はこちらを参考にしました

Dissolve Shader Breakdowncyangamedev.wordpress.com

ノード完成図です

f:id:Brave345:20200624161903p:plain

完成

f:id:Brave345:20200624161840g:plain

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

[f:id:Brave345:20200624161900p:plain ]

【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