パイプライン ステージ (Direct3D 10)

Direct3D 10 のプログラム可能なパイプラインは、リアルタイム ゲーム アプリケーションのグラフィックスを生成するように設計されています。下の概念図は、プログラム可能な各ステージの入力から出力へのデータ フローを表しています。

Ee415715.d3d10_pipeline_stages(ja-jp,VS.85).gif

すべてのステージは、API を使用して構成できます。共通のシェーダー コアを使用するステージ (長円のブロック) は、HLSL プログラミング言語を使用してプログラムできます。これにより、パイプラインは非常に柔軟で順応性のあるものになります。各ステージの目的は次のとおりです。

  • 入力アセンブラー ステージ - 入力アセンブラー ステージには、パイプラインにデータ (三角形、線、およびポイント) を供給する役割があります。
  • 頂点シェーダー ステージ - 頂点シェーダー ステージは頂点を処理します。このステージでは、通常、トランスフォーム、スキニング、ライティングなどの操作が行われます。頂点シェーダーは、常に、単一の入力頂点を取り、単一の出力頂点を生成します。
  • ジオメトリ シェーダー ステージ - ジオメトリ シェーダー ステージでは、プリミティブ全体が処理されます。入力はプリミティブ全体です (三角形の 3 つの頂点、線の 2 つの頂点、またはポイントの 1 つの頂点)。また、各プリミティブには、エッジ隣接プリミティブの頂点データを含めることができます。この場合、多くても、三角形の 3 つの頂点や、線の 2 つの頂点が追加される程度です。ジオメトリ シェーダーは限定的にジオメトリの増幅および減幅もサポートしています。ジオメトリ シェーダーに入力プリミティブを与えると、このプリミティブが破棄されるか、または 1 つまたは複数の新規プリミティブが出力されます。
  • ストリーム出力ステージ - ストリーム出力ステージは、パイプラインからラスタライザーへの途中にあるメモリーにプリミティブ データをストリーム出力するように設計されています。データはラスタライザーにストリーム出力するか、渡すか、またはこれらの両方を実行することができます。メモリーにストリーム出力されたデータは、パイプラインに入力データとして読み込んで循環させるか、CPU から読み戻すことができます。
  • ラスタライザー ステージ - ラスタライザーは、プリミティブのクリッピング、ピクセル シェーダー用プリミティブの準備、ピクセル シェーダーの呼び出し方法の決定を実行します。
  • ピクセル シェーダー ステージ - ピクセル シェーダー ステージは、プリミティブ用に補間されたデータを受け取り、ピクセル単位のデータ (カラーなど) を生成します。
  • 出力結合ステージ - 出力結合ステージは、さまざまな種類の出力データ (ピクセル シェーダー値、深度およびステンシル情報) をレンダー ターゲットや深度/ステンシル バッファーの内容と結合し、最終的なパイプラインの結果を生成します。

関連項目

Direct3D 10 プログラミング ガイド