シェーダー モデルとシェーダー プロファイル

DirectX 上位レベル シェーダー言語 (HLSL) は、一連のシェーダー モデルを実装しています。HLSL を使用すると、C に似たプログラマブル シェーダーを Direct3D パイプラインに作成することが可能です。各シェーダー モデルは、それぞれの前のモデルの機能を元にして構築されており、より少ない制限とともにより多くの機能が実装されています。

シェーダー モデル 1 は、DirectX 8 で初めて導入され、アセンブリ レベルと C に似た命令が組み込まれました。このモデルには、初期のプログラマブル シェーダー ハードウェアに起因する多くの制限事項があります。シェーダー モデル 2 および 3 では、命令の数およびシェーダーが使用できる定数の数が大幅に拡充されました。これらのモデルは、シェーダー モデル 1 よりも優れていますが、最初のシェーダー モデルの制限事項の一部をまだ残しています。

Windows Vista で導入されたシェーダー モデル 4 では、全面的な再設計が行われました。これにより、制限のない命令や定数を (コンピューターのハードウェア制限内で) 実現し、テクスチャー サンプリングの精度や効率を向上し、また、これまでのシェーダー モデルの中で最も少ない制限事項を達成しています。ただし、シェーダー モデル 4 には、Windows Vista (または、それ以降) のオペレーティング システムでのみ利用可能な Windows Driver Model が必要です。

シェーダー プロファイル

シェーダー プロファイルは、シェーダーをコンパイルするためのターゲットです。次の表は、各シェーダー モデルでサポートされているシェーダー プロファイルを示しています。

シェーダー モデル シェーダー プロファイル
シェーダー モデル 1 vs_1_1
シェーダー モデル 2 ps_2_0、ps_2_x、vs_2_0、vs_2_x
シェーダー モデル 3 ps_3_0、vs_3_0
シェーダー モデル 4 gs_4_0、ps_4_0、vs_4_0、gs_4_1、ps_4_1、vs_4_1
シェーダー モデル 5 cs_4_0、cs_4_1、cs_5_0、ds_5_0、gs_4_0*、gs_4_1*、gs_5_0、hs_5_0、ps_4_0*、vs_4_0*、ps_4_1*、ps_5_0、vs_4_1*、vs_5_0

(* - gs_4_0、gs_4_1、ps_4_0、ps_4_1、vs_4_0、および vs_4_1 は、シェーダー モデル 4.0 で導入されましたが、シェーダー モデル 5 では、構造化バッファーとバイト アドレス バッファーが新たにサポートされています)

Direct3D 9 と Direct3D 10 の違い

Direct3D 9 でシェーダー モデル 1、2、3 を導入。

Direct3D 10 で、シェーダー モデル 4 を導入。

Direct3D 10.1 で、シェーダー モデル 4.1 を導入。

エフェクト プロファイル

エフェクト プロファイルは、エフェクト/シェーダーをコンパイルするためのターゲットです。次の表は、Direct3D の各バージョンによってサポートされているエフェクト プロファイルを示しています。

Direct3D 9 と Direct3D 10 の違い

Direct3D 9 でエフェクト フレームワーク プロファイル fx_1_0 および fx_2_0 を導入。

Direct3D 10 でエフェクト フレームワーク プロファイル fx_4_0 を導入。

Direct3D 10.1 でエフェクト フレームワーク プロファイル fx_4_1 を導入。

関連項目

HLSL のリファレンス