動的リンク

グラフィックス開発者は、さまざまなシーン項目で使用できる、大きな汎用シェーダーを作成することがあります。 実行時に、シェーダーは、特定の状況に適したコードを条件付きで実行します。 残念ながら、これらの大規模な汎用シェーダーは、汎用レジスタ (GPRs) を非効率に使用しており、より小さな、より対象のシェーダーよりもはるかに低速になることがあります。

シェーダーモデル5では、動的シェーダーリンクを導入することによって、このパフォーマンスの問題に対処します。 動的リンクは、インターフェイスと仮想関数を使用してシェーダーのコードフラグメントを分離し、アプリケーションが描画時に使用するフラグメントを選択できるようにします。 これにより、大規模な汎用シェーダー全体ではなく、必要なシェーダーコードだけをバインドすることでパフォーマンスが向上します。

このセクションの内容

項目 説明
共有するシェーダーの変数と型の格納
複数のシェーダーで共有できる変数および型を格納するためのクラスリンケージオブジェクトについて説明します。
インターフェイスとクラス
HLSL インターフェイスとクラスを使用して動的リンクを実装する方法について説明します。
インターフェイスの使用制限
シェーダーコードでのインターフェイスの使用に関する制限事項について説明します。

HLSL