2017-02-16 54 views
3

我想知道是否有任何方法可以将特定于应用程序的元数据附加到HLSL着色器中的全局变量中。我知道HLSL支持全局变量annotations,但我找不到任何方式来阅读这些注释(大概是通过反射API),而不使用我的应用程序不使用的效果框架。是否有任何方法将特定于应用程序的元数据附加到HLSL中的全局变量? (最好推断从变量名特殊的含义。)有没有办法将元数据附加到HLSL全局(统一/常量)变量?

使用案例:我想我的应用程序能够检测是否float4全球被用作一种颜色或作为一个简单的4浮点矢量。在它是一种颜色的情况下,应用程序会在UI中使用颜色选择器来显示变量。

回答

0

如果您未使用Effects Framework(在D3DX中),则可以使用Effects for DX11库来读取这些注释的值。这是库不是DirectX SDK本身的一部分,因此它不像D3DX那样被明确弃用。事实上,它的既定预期的目的是:

影响11设置成可移植助剂老年人代码 利用弃用影响10(FX10)API或影响9(FX9)API在 的D3DX9库。请参阅MSDN以获取 与效果10(FX10)库的差异列表。

除了注释,除了命名方案(或其他隐含提示)之外,没有内置的方式将元数据附加到变量。

相关问题