Microsoft DirectX 8.0 (C++) |
ユーザーのコンピュータが 3D 操作用の特別なハードウェア アクセラレーションを備えていない場合、アプリケーションはソフトウェアで 3D ハードウェアをエミュレートできる。ソフトウェア ラスタ化デバイスは、ソフトウェアで カラー 3D ハードウェアの機能をエミュレートする。ソフトウェア デバイスはソフトウェア エミュレーションなので、ハードウェア アブストラクション レイヤ (HAL) デバイスよりも実行速度が遅い。ただし、ソフトウェア デバイスは、ユーザーの CPU でサポートされている特別な命令を利用してパフォーマンスを向上させる。サポートされる命令セットには、いくつかの AMD プロセッサの AMD 3D-Now! 命令セットや、多くの Intel プロセッサでサポートされる MMX 命令セットなどがある。Microsoft® Direct3D では、3D-Now! 命令セットを使用してトランスフォーム & ライティング処理を高速化し、MMX 命令セットを使用してラスタ化を高速化する。
Direct3D® のソフトウェア ラスタ化は、プラグ可能なソフトウェア デバイスによって提供される。このデバイスは、Direct3D インターフェイスを介して各種ソフトウェア ラスタライザへのアクセスを可能にする。ソフトウェア デバイスは、アプリケーションによってロードされて、Direct3D オブジェクトに登録される。この時点で、ソフトウェア デバイスを使ってレンダリングを実行する Direct3DDevice オブジェクトを作成できる。
Direct3D ソフトウェア デバイスは、ハードウェア デバイス ドライバ インタフェース (DDI) に類似するインターフェイスを介して Direct3D と通信する。
Direct3D DDK には、プラグ可能なソフトウェア デバイスを開発するためのドキュメントとヘッダーが用意されている。