是否可以在 HLSL 中执行类似的操作:
SamplerState Sampler0 : register(s0, space1);
SamplerState Sampler1 : register(s1, space1);
int samplerIndex;
// ...
float4 color = texture.Sample(samplerIndex == 1 ? Sampler0 : Sampler1, uv);
我收到一个错误:
local resource not guaranteed to map to unique global resource
对于这种情况,您最好这样做:
(a) 使用两个不同的静态采样器构建相同的着色器两次。
-或-
(b) 使用基于堆的采样器,以便您可以将其切换出去。
有关各种“组合”处理的示例,请参阅DirectX Tool Kit for DX12