SharpDx获取Texture2D,SamplerState的Shader变量名称



我想知道是否有可能获得Texture2D和SamplerState的变量名称。我知道我可以通过效果框架实现这些。但我正在寻找一种没有这个框架的方法。就像Constantbuffers (ShaderReflection)一样。我想让hsl代码像这样

   Texture2D tex0;
   Texture2D bg;

有没有人有一个想法,我如何能够访问变量名没有效果框架?

这里很简单,首先编译你的着色器以获得字节码。

然后创建一个ShaderReflection

实例
byte[] yourbytecode;
SharpDX.D3DCompiler.ShaderReflection sr;
sr = new ShaderReflection(yourbytecode);

查看绑定了多少资源:

int ResourceCount = sr.Description.BoundResources;

然后获取详细信息:

InputBindingDescription desc = sr.GetResourceBindingDescription(index);

包含名称、尺寸等有用的数据

相关内容

  • 没有找到相关文章