デバイスDevices

Direct3D デバイスは、Direct3D のレンダリング コンポーネントです。A Direct3D device is the rendering component of Direct3D. デバイスは、レンダリングの状態をカプセル化して格納します。また、変換や照明の操作、サーフェスへのイメージのラスタライズを実行します。A device encapsulates and stores the rendering state, performs transformations and lighting operations, and rasterizes an image to a surface.

アーキテクチャとしては、次の図に示すように、変換モジュール、照明モジュール、ラスタライズ モジュールが Direct3D デバイスに含まれます。Architecturally, Direct3D devices contain a transformation module, a lighting module, and a rasterizing module, as the following diagram shows.

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

Direct3D では、主に 2 種類の Direct3D デバイスをサポートしています。Direct3D supports two main types of Direct3D devices:

  • ハードウェア アクセラレータによるラスタライズと、ハードウェアとソフトウェアの両方の頂点処理によるシェーディングを備えた HAL デバイスA hal device with hardware-accelerated rasterization and shading with both hardware and software vertex processing
  • 参照デバイスA reference device

これらのデバイスは、2 つの独立したドライバーです。These devices are two separate drivers. ソフトウェア デバイスと参照デバイスはソフトウェア ドライバーによって表され、HAL デバイスはハードウェア ドライバーで表されます。Software and reference devices are represented by software drivers, and the hal device is represented by a hardware driver. これらのデバイスを活用する最も一般的な方法は、アプリケーションを出荷する際には HAL デバイスを使用し、機能テストには参照デバイスを使用することです。The most common way to take advantage of these devices is to use the hal device for shipping applications, and the reference device for feature testing. これらは、特定のデバイス (まだリリースされていない開発中のハードウェアなど) をエミュレートするために、サード パーティによって提供されます。These are provided by third parties to emulate particular devices - for example, developmental hardware that has not yet been released.

アプリケーションが作成する Direct3D デバイスは、アプリケーションが実行されるハードウェアの機能に対応している必要があります。The Direct3D device that an application creates must correspond to the capabilities of the hardware on which the application is running. Direct3D は、コンピューターにインストールされている 3D ハードウェアにアクセスするか、ソフトウェアで 3D ハードウェアの機能をエミュレートすることにより、レンダリング機能を提供します。Direct3D provides rendering capabilities, either by accessing 3D hardware that is installed in the computer or by emulating the capabilities of 3D hardware in software. したがって、Direct3D では、ハードウェアへのアクセスとソフトウェア エミュレーションの両方についてデバイスを提供します。Therefore, Direct3D provides devices for both hardware access and software emulation.

ハードウェア アクセラレータによるデバイスは、ソフトウェア デバイスよりも優れたパフォーマンスを提供します。Hardware-accelerated devices give much better performance than software devices. HAL デバイスは、Direct3D がサポートしているすべてのグラフィック アダプターで利用できます。The hal device type is available on all Direct3D supported graphic adapters. ほとんどの場合、アプリケーションは、ハードウェア アクセラレーションを備えたコンピューターを対象にしており、ローエンドのコンピューターに対応するためにソフトウェア エミュレーションを利用します。In most cases, applications target computers that have hardware acceleration and rely on software emulation to accommodate lower-end computers.

参照デバイスを除いて、ソフトウェア デバイスが、常にハードウェア デバイスと同じ機能をサポートするとは限りません。With the exception of the reference device, software devices do not always support the same features as a hardware device. アプリケーションでは、常にデバイスの機能を照会して、サポートされている機能を特定する必要があります。Applications should always query for device capabilities to determine which features are supported.

Direct3D 9 で提供されるソフトウェア デバイスと参照デバイスの動作は、HAL デバイスの動作と同じであるため、HAL デバイスで動作するように作成されたアプリケーション コードは、変更することなく、ソフトウェア デバイスや参照デバイスで動作します。Because the behavior of the software and reference devices provided with Direct3D 9 is identical to that of the hal device, application code authored to work with the hal device will work with the software or reference devices without modifications. 提供されるソフトウェア デバイスや参照デバイスの動作は HAL デバイスの動作と同じですが、デバイスの機能は異なり、特定のソフトウェア デバイスで実装されている機能はかなり少ない場合があります。The provided software or reference device behavior is identical to that of the hal device, but the device capabilities do vary, and a particular software device may implement a much smaller set of capabilities.

このセクションの内容In this section

トピックTopic 説明Description

デバイスの種類Device types

Direct3D デバイスの種類には、ハードウェア アブストラクション レイヤー (HAL) デバイスとリファレンス ラスタライザーがあります。Direct3D device types include Hardware Abstraction Layer (hal) devices and the reference rasterizer.

全画面表示モードとウィンドウWindowed vs. full-screen mode

Direct3D アプリケーションは、ウィンドウ モードと全画面表示モードのどちらでも実行できます。Direct3D applications can run in either of two modes: windowed or full-screen. ウィンドウ モードでは、アプリケーションは実行中のすべてのアプリケーションとデスクトップの利用可能な画面領域を共有します。In windowed mode, the application shares the available desktop screen space with all running applications. 全画面表示モードでは、アプリケーションが実行されるウィンドウがデスクトップ全体に表示され、実行中のすべてのアプリケーション (開発環境を含む) が非表示になります。In full-screen mode, the window that the application runs in covers the entire desktop, hiding all running applications (including your development environment).

紛失したデバイスLost devices

Direct3D デバイスは、稼働状態または喪失状態に設定できます。A Direct3D device can be in either an operational state or a lost state. 稼働状態は、デバイスが実行され、期待どおりにすべてのレンダリングが表示される、デバイスの通常の状態です。The operational state is the normal state of the device in which the device runs and presents all rendering as expected. 全画面表示のアプリケーションでキーボード フォーカスが失われるなどのイベントによって、レンダリングが不可能になると、デバイスは喪失状態に移行します。The device makes a transition to the lost state when an event, such as the loss of keyboard focus in a full-screen application, causes rendering to become impossible.

スワップ チェーンSwap chains

スワップ チェーンは、ユーザーにフレームを表示するために使用されるバッファーのコレクションです。A swap chain is a collection of buffers that are used for displaying frames to the user. アプリケーションが表示する新しいフレームを提供するたびに、スワップ チェーンの最初のバッファーが、表示されているバッファーの場所を取得します。Each time an application presents a new frame for display, the first buffer in the swap chain takes the place of the displayed buffer. このプロセスは、スワップまたはフリップと呼ばれます。This process is called swapping or flipping.

ラスタライズ規則の概要Introduction to rasterization rules

多くの場合、頂点として指定される点は、画面上のピクセルと正確には一致しません。Often, the points specified for vertices do not precisely match the pixels on the screen. この場合、Direct3D は三角形のラスター化ルールを適用し、指定された三角形に適用するピクセルを決定します。When this happens, Direct3D applies triangle rasterization rules to decide which pixels apply to a given triangle.

 

関連トピックRelated topics

Direct3D グラフィックス学習ガイドDirect3D Graphics Learning Guide