Texture2D tex0 : register(t0); Texture2D tex1 : register(t1); Texture2D tex2 : register(t2); struct PSInput { float2 tex : TexCoord; float slot : ImageSlot; }; SamplerState splr; float4 main(PSInput input) : SV_Target { switch (input.slot) { case 0.0f: return tex0.Sample(splr, input.tex); case 1.0f: return tex1.Sample(splr, input.tex); case 2.0f: return tex2.Sample(splr, input.tex); default: return tex0.Sample(splr, input.tex); } }