通常 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 を使うメリットは無さそう、もしかしたらな何かしらの方法で有効にできるかもしれないので、気が向いたら調べてみます