Direct3D のアーキテクチャ (Direct3D 9)
このトピックでは、Direct3D のアーキテクチャの全体像を次の 2 つの観点で説明します。
- Direct3D のグラフィック パイプライン : Direct3D のレンダリング システムの内部処理アーキテクチャの観点
- Direct3D のシステム統合 : アプリケーションとグラフィック ハードウェアとの間での Direct3D の媒介方法の観点
Direct3D のグラフィック パイプライン
グラフィック パイプラインは、使用可能なハードウェアを活用して、画面へ Direct3D のシーンを効率的に処理およびレンダリングするための処理能力を提供します。この図は、パイプラインのビルディング ブロックを概念的に示しています。
パイプライン コンポーネント | 説明 | 関連トピック |
---|---|---|
頂点データ | トランスフォームされていないモデルの頂点は、頂点メモリー バッファーに格納されます。 | 頂点バッファー (Direct3D 9), IDirect3DVertexBuffer9 |
プリミティブ データ | 点、線、三角形、ポリゴンなどのジオメトリ プリミティブは、インデックス バッファーを持つ頂点データで参照されます。 | インデックス バッファー (Direct3D 9), IDirect3DIndexBuffer9, プリミティブ, 高次プリミティブ (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 のメソッドは、実行時にデバイス表示能力を取得するために提供されます。(「IDirect3D9::GetDeviceCaps」および「IDirect3DDevice9::GetDeviceCaps」を参照してください)。ハードウェアによって能力が提供されない場合は、HAL がそれをハードウェア能力としてレポートすることはありません。
Direct3D でサポートされている HAL およびリファレンス デバイスの詳細については、「デバイス タイプ (Direct3D 9)」を参照してください。