💀

URP14でカスタムポストプロセスを作成する最小コード

2023/04/16に公開

Unityでカスタムポストプロセスを作成する方法がいくつかあって混乱したので、一番楽そうな方法を残しておきます。

対象読者

こんなことを思っている方はこの記事を読めば、幸せになれるかもしれません。(私です)

  • サクッとカスタムポストプロセスを試せる方法が知りたい!
  • HLSLのコードは書きたい!
  • 自前でRendererFeature作るのとか面倒!

ステップは3つだけです!

  1. シェーダー作成
  2. マテリアル作成
  3. マテリアルを適用

シェーダー作成

何もしないポストエフェクトです。
画面の色をそのまま出力します。

PPTest.shader
Shader "Custom/PPTest" // ←マテリアルで指定するシェーダー名
{
    SubShader
    {
        Pass
        {
            HLSLPROGRAM
            #pragma vertex Vert
            #pragma fragment frag

            #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
            #include "Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/Common.hlsl"

            half4 frag (Varyings i) : SV_Target
            {
                half4 col = SAMPLE_TEXTURE2D_X(_BlitTexture, sampler_PointClamp, i.texcoord);
                return col;
            }
            
            ENDHLSL
        }
    }
}

マテリアル作成

適当な名前でマテリアルを作成し、先のシェーダーを適用します。

マテリアルを適用

URPアセットのインスペクターから「Add Renderer Feature > Full Screen Pass Renderer Feature」を選択します。
追加された項目の「Pass Material」を2で作成したマテリアルに変更します。

以上です!

Discussion