次の方法で共有


デバイス

デバイス

Microsoft® Direct3D® デバイスとは、Direct3D のレンダリング コンポーネントのことである。これはレンダリング ステートをカプセル化して保存する。さらに、Direct3D デバイスは、トランスフォーム & ライティング処理を実行し、サーフェイスに画像をラスタ化する。次に示すトピックでは、デバイスの使い方について詳しく説明する。

次の図に示すように、Direct3D デバイスのアーキテクチャは、トランスフォーム モジュール、ライティング モジュール、およびラスタ化モジュールから構成される。

Direct3D デバイスのアーキテクチャ

Microsoft DirectX® が現在サポートしている Direct3D の主要デバイスは、主に 2 種類に分けられる。ハードウェア、ソフトウェア両方の頂点処理を含む、ハードウェア アクセラレーションによるラスタ化とシェーディングが可能なハードウェア デバイス、そしてリファレンス デバイスである。

これらのデバイスは、2 つの別個のドライバと見なすことができる。ソフトウェア デバイスとリファレンス デバイスはソフトウェア ドライバで表され、ハードウェア デバイスはハードウェア ドライバで表される。これらのデバイスを有効活用する最も一般的な方法は、ハードウェア デバイスを出荷用アプリケーションに使い、リファレンス デバイスを機能テストに使うことである。このようなリファレンス ドライバは、サード パーティによって提供され、特定のデバイス (たとえば、まだリリースされていない開発中のハードウェア) をエミュレートする。

アプリケーションが作成する Direct3D デバイスは、アプリケーションが動作するハードウェアの機能に対応していなければならない。Direct3D では、コンピュータにインストールされている 3D ハードウェアにアクセスするか、ソフトウェアで 3D ハードウェア機能をエミュレートするかのいずれかの方法で、レンダリング機能を利用する。したがって、Direct3D は、ハードウェア アクセス用およびソフトウェア エミュレーション用の両方のデバイスを備えている。

ハードウェア アクセラレーション デバイスは、ソフトウェア エミュレーション デバイスよりもさらに高いパフォーマンスを実現する。ハードウェア デバイスは、Direct3D をサポートするすべてのグラフィック アダプタで使える。ほとんどの場合、アプリケーションが対象とするのは、何らかのハードウェア アクセラレーションを備え、ソフトウェア エミュレーションによってローエンド コンピュータの機能を使えるコンピュータである。

リファレンス デバイスを除き、ソフトウェア デバイスは、常にハードウェア デバイスと同じ機能をサポートしているわけではない。アプリケーションは、デバイス機能を調べて、サポートされている機能を確認する必要がある。

DirectX 9.0 によって提供されるソフトウェア デバイスおよびリファレンス デバイスの動作はハードウェア デバイスの動作と同じであり、ハードウェア デバイス用に作成されたアプリケーション コードは、修正なしでそのまま使える。提供されるソフトウェア デバイスおよびリファレンス デバイスの動作はハードウェア デバイスの動作と同じだが、デバイスの能力は異なる。また、特定のソフトウェア デバイスでは、わずかな機能セットしか実装できないこともあるので注意すること。

動作

Microsoft Direct3D では、デバイスの種類に加えて、デバイスの動作も指定できる。Device(Int32,DeviceType,IntPtr,CreateFlags,PresentParameters) メソッドでは、1 つまたは複数の CreateFlags 動作フラグを組み合わせて Direct3D デバイスのグローバルな動作を制御できる。これらの動作によって Direct3D のランタイム部分で保持されるものと保持されないものが指定され、デバイスの種類によって使うドライバが指定される。デバイス動作の組み合わせの中には有効でないものもあるが、すべてのデバイスの種類ですべてのデバイスの動作を使える。たとえば、デバイス作成フラグ CreateFlags.PureDevice を使ってプラグ可能なソフトウェア デバイスを示す DeviceType.Software を指定できる。これは、デバイスが頂点処理をサポートしないことを指定する。

© 2002 Microsoft Corporation. All rights reserved. Terms of use.