Direct3D 11 と SharpDX を使用して、シェーダーで宣言されているテクスチャ マップの名前を指定すると、Sampler と TextureView を割り当てるスロットをどのように知ることができますか?
ドキュメントには、ShaderReflection を使用できることが示されていますが、その方法は明確ではありません...
void SetTexture(MyShaderProgram shaderProgram, string name, MyTextureMap textureMap)
{
byte[] byteCode = shaderProgram.ByteCode;
var shaderReflection = new
SharpDX.D3DCompiler.ShaderReflection(byteCode);
var slot = ?
PixelShaderStage pixelShader = shaderProgram.PixelShader;
pixelShader.SetSampler(slot, textureMap.Sampler);
pixelShader.SetShaderResource(slot, textureMap.TextureView);
}