次の方法で共有


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

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

direct3d 10 プログラミング可能なパイプライン図

すべてのステージは、API を使用して構成できます。 共通シェーダー コア (丸められた四角形のブロック) を特徴とするステージは、HLSL プログラミング言語を使用してプログラミングできます。 ご覧のように、これにより、パイプラインは非常に柔軟で適応可能になります。 各ステージの目的を次に示します。

  • Input-Assembler ステージ - 入力アセンブラー ステージは、パイプラインにデータ (三角形、線、ポイント) を提供します。
  • Vertex-Shader ステージ - 頂点シェーダー ステージは頂点を処理し、通常は変換、スキニング、照明などの操作を実行します。 頂点シェーダーは常に 1 つの入力頂点を受け取り、1 つの出力頂点を生成します。
  • Geometry-Shader ステージ - ジオメトリ シェーダー ステージはプリミティブ全体を処理します。 入力は完全なプリミティブ (三角形の場合は 3 つの頂点、線の場合は 2 つの頂点、ポイントの場合は 1 つの頂点) です。 さらに、各プリミティブには、任意のエッジ隣接プリミティブの頂点データを含めることもできます。 これには、1 つの三角形に対して最大で 3 つの頂点が追加されたり、線に対して 2 つの頂点が追加されたりする場合があります。 ジオメトリ シェーダーは、限られたジオメトリの増幅と増幅解除もサポートしています。 入力プリミティブを指定すると、ジオメトリ シェーダーはプリミティブを破棄したり、1 つ以上の新しいプリミティブを出力したりできます。
  • Stream-Output ステージ - ストリーム出力ステージは、ラスタライザーに向けてパイプラインからメモリにプリミティブ データをストリーミングするように設計されています。 データは、ストリーミングアウトしたり、ラスタライザーに渡すことができます。 メモリにストリーミングされたデータは、入力データとしてパイプラインに再循環するか、CPU から読み取り戻すことができます。
  • ラスタライザー ステージ - ラスタライザーは、プリミティブのクリッピング、ピクセル シェーダーのプリミティブの準備、およびピクセル シェーダーの呼び出し方法の決定を担当します。
  • Pixel-Shader ステージ - ピクセル シェーダー ステージはプリミティブの補間データを受け取り、カラーなどのピクセル単位のデータを生成します。
  • Output-Merger ステージ - 出力マージャー ステージは、さまざまな種類の出力データ (ピクセル シェーダー値、深度、ステンシル情報) とレンダー ターゲットおよび深度/ステンシル バッファーの内容を組み合わせて最終的なパイプラインの結果を生成します。

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