Directx DX11中的多文本处理是如何工作的?

Directx DX11中的多文本处理是如何工作的?,directx,textures,directx-11,Directx,Textures,Directx 11,我有一系列的着色器,我通过合并一系列片段通过编程生成。每个片段都可以有自己的纹理,它负责上传/绑定适当的值 我在Google上找到的所有解决方案要么使用纹理数组,要么指定寄存器(例如)。这篇文章写得不好。在GL中,这很容易,因为您可以按名称查找纹理 有更好的办法吗?或者我必须记录每个片段通过寄存器处理它们时使用的纹理数量吗?在OpenGL中,您使用着色器程序内省 DirectX还具有以下功能: 在D3DCompiler_xx.dll中定义 还有Effects framework(,),它

我有一系列的着色器,我通过合并一系列片段通过编程生成。每个片段都可以有自己的纹理,它负责上传/绑定适当的值

我在Google上找到的所有解决方案要么使用纹理数组,要么指定寄存器(例如)。这篇文章写得不好。在GL中,这很容易,因为您可以按名称查找纹理


有更好的办法吗?或者我必须记录每个片段通过寄存器处理它们时使用的纹理数量吗?

在OpenGL中,您使用着色器程序内省

DirectX还具有以下功能:

在D3DCompiler_xx.dll中定义

还有Effects framework(,),它是一个围绕着色器反射的包装器,也允许类似于您所做的:“我通过合并一系列片段以编程方式生成的一系列着色器”

唯一的问题是,微软不允许部署包含这些功能的Windows应用商店应用程序。但对于桌面应用程序来说也没关系

您可以在DirectX SDK中找到Effect11的完整源代码,因此您可以自己实现这样的功能。另请参阅有关Win8SDK更新版本的信息


快乐编码

如果使用效果框架,则可以通过纹理名称访问纹理。它在内部使用着色器反射。如果不想使用框架,可以模拟此行为。