入力アセンブラー (IA) ステージ

入力アセンブラー (IA) ステージは、三角形、線、点などのパイプラインにプリミティブ データと隣接性データを提供し (セマンティクス ID など)、まだ処理されていないプリミティブの処理を減らすことでシェーダーの効率を高めます。

目的と用途

入力アセンブラー (IA) ステージの目的は、ユーザーが入力したバッファーからプリミティブ データ (点、線、三角形) を読み取って、他のパイプライン ステージにより使われるプリミティブにデータをアセンブルし、システムにより生成された値をアタッチしてシェーダーの効率を高めることです。 システムにより生成された値は、セマンティクスとも呼ばれるテキスト文字列です。 プログラミング可能なシェーダー ステージは、システムにより生成された値 (プリミティブ ID、インスタンス ID、頂点 ID など) を使うコマンド シェーダー コアから作成されます。これにより、シェーダー ステージは、まだ処理されていないそれらのプリミティブ、インスタンス、または頂点のみに処理を減らすことができます。

IA ステージは、複数の異なるプリミティブ型 (線の一覧、三角形のストリップ、隣接性を持つプリミティブなど) に頂点をアセンブルします。 隣接性を持つ三角形の一覧などのプリミティブ型と、隣接性を持つ線の一覧は、ジオメトリ シェーダー (GS) ステージをサポートします。

隣接性情報は、ジオメトリ シェーダーでのみアプリケーションから見えます。 たとえば、ジオメトリ シェーダーが隣接性を含む三角形に関与していた場合、入力データには三角形ごとに 3 つの頂点と、各三角形の隣接性データに 3 つの頂点が含まれます。

IA ステージが隣接性データを出力するよう要求された場合、入力データには隣接性データが含まれている必要があります。 これには、ダミーの頂点を提供する必要が生じることあります (縮退三角形を形成)。場合によっては、頂点が存在するかどうかに関係なく、頂点属性の 1 つフラグを付けることによってもできます。 さらに、このことはジオメトリ シェーダーにより検出されて処理される必要もあります。ただし、縮退ジオメトリのカリングはラスタライザー ステージで行われます。

入力

IA ステージは、メモリ、プリミティブ データ (点、線、三角形)、ユーザーが入力したバッファーからデータを読み取ります。

出力

IA ステージは、データをプリミティブにアセンブルして、システムにより生成された値をアタッチし、頂点シェーダー (VS) ステージ、他のパイプライン ステージの順で使われるプリミティブとして値を出力します。

このセクションの内容

トピック 説明

プリミティブ トポロジ

Direct3D では、ポイントの一覧、線の一覧、三角形ストリップなどのいくつかのプリミティブ トポロジがサポートされており、パイプラインにより頂点がどのように解釈され、レンダリングされるかを定義します。

システム生成値の使用

システムにより生成された値は、入力アセンブラー (IA) ステージにより生成され (ユーザーが提供した入力セマンティクスに基づく)、シェーダー操作で一定の効率を実現します。 インスタンス ID (頂点シェーダー (VS) ステージで参照可能)、頂点 ID (VS で参照可能)、またはプリミティブ ID (ジオメトリ シェーダー (GS) ステージ/ピクセル シェーダー (PS) ステージで参照可能) などのデータをアタッチするとにより、その後のシェーダー ストレージがそれらのシステム値を探して、そのステージでの処理を最適化できるようになります。

 

グラフィックス パイプライン