Direct3D アーキテクチャ (Direct3D 9)
このトピックでは、Direct3D のアーキテクチャの 2 つの概要を示します。
- Direct3D グラフィックス パイプライン - Direct3D レンダリング システムの内部処理アーキテクチャのビュー。
- Direct3D System Integration - Direct3D がアプリケーションとグラフィックス ハードウェアの間でどのように仲介するかを示すビュー。
Direct3D グラフィックス パイプライン
グラフィックス パイプラインは、使用可能なハードウェアを利用して Direct3D シーンを効率的に処理し、ディスプレイにレンダリングする能力を提供します。 次の図は、パイプラインの構成要素を示しています。
direct3d グラフィックス パイプライン図
パイプライン コンポーネント | 形容 | 関連トピック |
---|---|---|
頂点データ | 変換されていないモデルの頂点は、頂点メモリ バッファーに格納されます。 | 頂点バッファー (Direct3D 9)、IDirect3DVertexBuffer9 |
プリミティブ データ | ポイント、線、三角形、ポリゴンなどのジオメトリ プリミティブは、インデックス バッファーを使用して頂点データ内で参照されます。 | インデックス バッファー (Direct3D 9)、IDirect3DIndexBuffer9、プリミティブ、Higher-Order プリミティブ (Direct3D 9) |
テセレーション | テッセレータ ユニットは、上位のプリミティブ、ディスプレイスメント マップ、メッシュ パッチを頂点の位置に変換し、それらの位置を頂点バッファーに格納します。 | テッセレーション (Direct3D 9) |
頂点処理 | Direct3D 変換は、頂点バッファーに格納されている頂点に適用されます。 | 頂点パイプライン (Direct3D 9) |
ジオメトリ処理 | クリッピング、背面カリング、属性の評価、ラスタライズは、変換された頂点に適用されます。 | ピクセル パイプライン (Direct3D 9) |
テクスチャサーフェス | Direct3D サーフェスのテクスチャ座標は、IDirect3DTexture9 インターフェイスを介して Direct3D に提供されます。 | Direct3D テクスチャ (Direct3D 9)、IDirect3DTexture9 |
テクスチャ サンプラー | テクスチャレベルの詳細フィルタリングは、入力テクスチャ値に適用されます。 | Direct3D テクスチャ (Direct3D 9) |
ピクセル処理 | ピクセル シェーダー操作では、ジオメトリ データを使用して入力頂点とテクスチャ データを変更し、出力ピクセルカラー値を生成します。 | ピクセル パイプライン (Direct3D 9) |
ピクセル レンダリング | 最終的なレンダリング プロセスでは、アルファ テスト、深度テスト、ステンシル テスト、またはアルファ ブレンドまたは霧の適用によってピクセル カラー値が変更されます。 結果として得られるすべてのピクセル値が出力ディスプレイに表示されます。 | ピクセル パイプライン (Direct3D 9) |
Direct3D システム統合
次の図は、Window アプリケーション、Direct3D、GDI、およびハードウェア間の関係を示しています。
Direct3D は、デバイスに依存しないインターフェイスをアプリケーションに公開します。 Direct3D アプリケーションは GDI アプリケーションと共に存在でき、両方ともグラフィックス カードのデバイス ドライバーを介してコンピューターのグラフィックス ハードウェアにアクセスできます。 GDI とは異なり、Direct3D は hal デバイスを作成することでハードウェア機能を利用できます。
hal デバイスは、グラフィックス カードでサポートされている機能セットに基づいて、グラフィックス パイプライン関数にハードウェア アクセラレーションを提供します。 Direct3D メソッドは、実行時にデバイスの表示機能を取得するために提供されます。 (IDirect3DDevice9::GetDeviceCapsを参照してください)。機能がハードウェアによって提供されていない場合、hal はそれをハードウェア機能として報告しません。
Direct3D でサポートされる hal デバイスと参照デバイスの詳細については、「デバイスの種類 (Direct3D 9)」を参照してください。