うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】Texture2DArray は SRP Batcher が有効なのか

通常 URP Lit を利用した際には SRP Batcher が有効な Shader なので、Frame Debugger で確認したところちゃんと SRP Batcher が有効となっていることが分かる

では Texture2DArray を利用した Shader では SRP Batcher が有効なのか確認してみます

追加項目は以下のように必要最低限だけにします

        _BaseMapArray("Albedo", 2DArray) = "white" {}
CBUFFER_START(UnityPerMaterial)
・・・
float4 _BaseMapArray_ST;

・・・

TEXTURE2D_ARRAY(_BaseMapArray);       SAMPLER(sampler_BaseMapArray);

・・・

    half4 n = SAMPLE_TEXTURE2D_ARRAY(_BaseMapArray, sampler_BaseMapArray, uv, 0);
    outSurfaceData.albedo = n.rgb;

Frame Debugger で確認してみたところ SRP Batcher は有効じゃない模様、これだと Texture2DArray を使うメリットは無さそう、もしかしたらな何かしらの方法で有効にできるかもしれないので、気が向いたら調べてみます