はじめに
今回は画像をぼかすシェーダーを作成していきます。
環境は Unity 2019.3.0f3
Universal Render Pipeline(テンプレートのプロジェクトです)
UnlitGraph を使用しています。
ノード作成
画像の処理はほぼCustom functionノードに任せています。
処理の内容としては、上下左右のピクセルの取得して、平均を求めています。
SAMPLE_TEXTURE2DはTexture2D,Sampler State,UVを渡して、テクスチャのUVに対応した色情報を取得します。
const int BLUR_SAMPLE_COUNT = 4; float2 BLUR_KERNEL[BLUR_SAMPLE_COUNT] = { float2(-1.0, -1.0), float2(-1.0, 1.0), float2(1.0, -1.0), float2(1.0, 1.0), }; color = 0; for (int j = 0; j < BLUR_SAMPLE_COUNT; j++) { color += SAMPLE_TEXTURE2D(Tex,sam, uv+ BLUR_KERNEL[j] * Scale ); } color.rgb /= BLUR_SAMPLE_COUNT; color.a = 1;
完成
かなり簡易的なものですがそれらしくできました。