HLSL のプログラミング ガイド
かなり高いレベルで、データはグラフィック パイプラインにプリミティブのストリームとして入り、最大 3 つのシェーダー ステージで処理されます。
- 頂点シェーダーは、トランスフォーム、スキニング、頂点ディスプレイスメント、頂点単位の頂点の計算など、頂点単位の処理を実行します。頂点シェーダーが実行する前に、高次プリミティブのテッセレーションを実行する必要があります。最低限、頂点シェーダーは同次クリック空間に頂点の位置を出力する必要があります。オプションとして、頂点シェーダーはテクスチャー座標、頂点カラー、頂点ライティング、フォグ係数などを出力できます。
- ジオメトリ シェーダーは、マテリアル セレクションやシルエットエッジの検出など、プリミティブ単位の処理を実行し、ポイント スプライトの展開、Fin の生成、シャドウ ボリュームの押し出し、およびキューブ テクスチャーの複数の面への1 つのレンダリング パスに対して新しいプリミティブを生成できます。
- ピクセル シェーダーは、テクスチャー ブレンディング、ライティング モデルの計算、ピクセル単位の通常マッピング/環境マッピングなど、ピクセル単位の処理を実行します。ピクセル シェーダーは、頂点シェーダーと連携して動作します。頂点シェーダーはピクセルシェーダーの入力を出力します。Direct3D 9 では、ピクセル シェーダーが完了すると、いくつかのピクセル操作 (フォグ ブレンディング、ステンシル処理、レンダー ターゲット ブレンディングなど) が発生します。
これらのステージは、上位レベル シェーダー言語 (HLSL) を使用して完全にプログラミングできます。HLSL シェーダーはオーサリング時に、またはランタイム時にコンパイルでき、ランタイム時には適切なパイプライン ステージに設定できます。Direct3D 9 シェーダーは、シェーダー モデル 1、シェーダー モデル 2、およびシェーダー モデル 3 を使用して設計できます。Direct3D 10 シェーダーはシェーダー モデル 4 のみで設計できます。
- Direct3D 9 での HLSL シェーダーの記述
- Direct3D 9 でのシェーダーの使用
- Direct3D 10 でのシェーダーの使用
- HLSL シェーダーの最適化
- Visual Studio でのシェーダーのデバッグ (Direct3D 9)
- シェーダーのコンパイル