Direct3D
ハードウェアによる座標変換とライティングを行うハードウェアT&L、一枚のポリゴンに複数のテクスチャを同時に貼るマルチテクスチャやキューブマップをサポートした。
実数(浮動小数点数)テクスチャ、およびプログラマブルシェーダー2.0をサポートした。また、プログラマブルシェーダーを記述するための高級言語「HLSL」に対応した。
Windows XPに標準搭載されている。プログラマブルシェーダー1.1、1.2、1.3、および1.4をサポートする。
Direct3Dのほとんどの機能を忠実に実装しているが、パフォーマンスが非常に低いソフトウェアレンダラーを選択する。このデバイスタイプを利用するためにはDirect3DのSDKを事前にインストールする必要がある。
Direct3D 10のパイプラインは下記のステージで構成される。
インプット アセンブラー: パイプラインにデータを提供する。
バーテックスシェーダー: 座標変換やスキニングのためのベクトル・行列演算、頂点ライティングといった単一の頂点処理を実行する。頂点シェーダーとも呼ばれる。
ジオメトリシェーダー: 頂点シェーダーの出力である、プリミティブ全体(三角形、直線または頂点)を処理する。それらのエッジ隣接プリミティブを処理することもある。プリミティブが与えられ、このステージでこれを取り除いたり新しいプリミティブを生成したりする。
ストリーム アウトプット: 前のステージの結果をメモリに保存する。データをリサイクルしてパイプラインに戻すことは有用である。
ラスタライザー: プリミティブをピクセルにラスタライズし、見えないところはクリッピングする。
ピクセルシェーダー: ラスタライザーの出力、すなわち各ピクセルの色などを制御・決定する。
Direct3Dは"イミディエイトモード"(IM: 直接モード)のグラフィックスAPIである。これは各ビデオカードの3D機能(平行移動、クリッピング、光源、マテリアル、テクスチャ、深度バッファなど)に低レベルなインターフェイスを提供する。またDirect3D 7までは"リテインドモード"(RM: 保持モード)という高レベルのコンポーネントもあったが、Direct3D 8以降では廃止されている。
Direct3Dのイミディエイトモードは「デバイス」、「リソース」、「スワップチェーン」の3つの主要な抽象化を提供する(図参照)。「デバイス」は描画に必要な処理を行うソフトウェア・ハードウェアを指す概念であり、アプリケーションは「デバイスタイプ」を指定することにより、デバイスにアクセスすることができる。