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 メソッドは、実行時にデバイスの表示機能を取得するために提供されます。 ( 「IDirect3DDevice9::GetDeviceCaps」を参照してください)。機能がハードウェアによって提供されていない場合、hal はそれをハードウェア機能として報告しません。
Direct3D でサポートされている hal デバイスと参照デバイスの詳細については、「 デバイスの種類 (Direct3D 9)」を参照してください。