2017-02-16 3 views
3

HLSLシェーダのグローバル変数にアプリケーション固有のメタデータを付ける方法があるかどうかを知りたいと思います。私はHLSLがグローバル変数でannotationsをサポートしていることを知っていますが、私のアプリケーションで使われていないEffects Frameworkを使わずに、これらのアノテーション(おそらくリフレクションAPI経由)を読む方法が見つかりません。 HLSLのグローバル変数にアプリケーション固有のメタデータを付加する方法はありますか? (好ましくはずに変数の名前から特別な意味を推測する。)メタデータをHLSLグローバル(uniform/constant)変数に付加する方法はありますか?

ユースケース:私は私のアプリケーションは、グローバルfloat4が色として、あるいはシンプルな4フロートベクトルとして使用されているかどうかを検出できるようにしたいです。色の場合、アプリケーションはUIのカラーピッカーを使用して変数を表示します。

答えて

0

Effects Framework(D3DX)を使用していない場合は、Effects for DX11ライブラリを使用して、これらの注釈の値を読み取ることができます。これはライブラリがDirectX SDK自体の一部ではないため、特にD3DXのように推奨されていません。実際には、それが意図述べたの目的は次のとおりです。

効果11 は廃止の影響 10(FX10)APIやエフェクト9(FX9)APIを使用することを古いコードの移植支援として提供されていますD3DX9ライブラリ。エフェクト10(FX10)ライブラリに対する の相違点のリストについては、MSDNを参照してください。

注釈以外にも、名前付けスキーム(または他の暗黙的なヒント)以外に、メタデータを変数に付加する組み込みの方法はありません。

関連する問題