Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Direct3D® が現在サポートしている Direct3D の主要デバイスは、主に 3 種類に分けられる。ハードウェア アクセラレーションによるラスタ化とシェーディング、ハードウェアとソフトウェア両方による頂点処理を行う、ハードウェア アブストラクション レイヤ (HAL) デバイス、リファレンス デバイス、そしてソフトウェアによるラスタ化を提供するプラグ可能なソフトウェア デバイスの 3 種類である。
これら 3 つのデバイスは、3 つの別個のドライバと見なすことができる。ソフトウェア デバイスとリファレンス デバイスは、ソフトウェア ドライバで表され、HAL デバイスは、ハードウェア ドライバで表される。これらのデバイスを有効活用する最も一般的な方法は、HAL デバイスを出荷用アプリケーションに使用し、リファレンス デバイスを機能テストに使用することである。このようなリファレンス ドライバは、サード パーティによって提供され、特定のデバイス (たとえば、まだリリースされていない開発中のハードウェア) をエミュレートする。
アプリケーションが作成する Direct3D デバイスは、アプリケーションが動作するハードウェアの機能に対応していなければならない。Direct3D では、コンピュータにインストールされている 3D ハードウェアにアクセスするか、ソフトウェアで 3D ハードウェア機能をエミュレートするかのいずれかの方法で、レンダリング機能を利用する。したがって、Direct3D は、ハードウェア アクセス用およびソフトウェア エミュレーション用の両方のデバイスを備えている。
ハードウェア アクセラレーション デバイスは、ソフトウェア エミュレーション デバイスよりもさらに高いパフォーマンスを実現する。HAL デバイスは、Direct3D をサポートするすべてのグラフィック アダプタで使用できる。ほとんどの場合、アプリケーションが対象とするのは、何らかのハードウェア アクセラレーションを備え、ソフトウェア エミュレーションによってローエンド コンピュータの機能を使用できるコンピュータである。
リファレンス デバイスを除き、ソフトウェア デバイスは、常にハードウェア デバイスと同じ機能をサポートしているわけではない。アプリケーションは、デバイス機能を調べて、サポートされている機能を確認する必要がある。
Microsoft DirectX® 8.0 によって提供されるソフトウェア デバイスおよびリファレンス デバイスの動作は HAL デバイスの動作と同じであり、HAL デバイス用に作成されたアプリケーション コードは、修正なしでそのまま使用できる。提供されるソフトウェア デバイスおよびリファレンス デバイスの動作は HAL デバイスの動作と同じであるが、デバイスの能力は異なる。また、特定のソフトウェア デバイスでは、わずかな機能セットしか実装できないこともあるので注意すること。