2017-02-16 46 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)庫的差異列表。

除了註釋,除了命名方案(或其他隱含提示)之外,沒有內置的方式將元數據附加到變量。

相關問題