動的リンク
グラフィック開発では、さまざまなシーン項目で使用できる大きな汎用シェーダーを作成することがあります。実行時に、このようなシェーダーは特定の状況に適したコードを条件分岐処理で実行します。残念ながら、このような、いわゆるウーバー シェーダーでは、汎用レジスタ (GPR) が効率的に活用されず、ターゲットを絞った小型のシェーダーより速度が大幅に遅くなることがあります。
シェーダー モデル 5 では、動的シェーダー リンクを導入することによって、この問題に対処しています。動的リンクでは、インターフェイスと仮想関数を使用してシェーダー コード断片を分離しておき、使用するコード断片を描画時にアプリケーションで選択できるようにします。それにより、ウーバー シェーダー全体ではなく、必要なシェーダー コードのみをバインドできるため、パフォーマンスが向上します。
このセクションには、以下のトピックが含まれています。
- インターフェイスとクラス
HLSL のインターフェイスとクラスを使用した動的リンクの実装について説明します。 - インターフェイスの使用に関する制限
シェーダー コードでインターフェイスを使用する際の制限について説明します。