次の方法で共有


頂点データの処理 (Direct3D 9)

IDirect3DDevice9 インターフェイスは、ソフトウェアとハードウェアの両方で頂点処理をサポートします。 一般に、ソフトウェアとハードウェアの頂点処理のデバイス機能は同じではありません。 ハードウェア機能は、ディスプレイ アダプターとドライバーによって異なりますが、ソフトウェア機能は固定されています。

次のフラグは、ハードウェア抽象化レイヤー (HAL) および参照デバイスの頂点処理動作を制御します。

  • D3DCREATE_SOFTWARE_VERTEXPROCESSING
  • D3DCREATE_HARDWARE_VERTEXPROCESSING
  • D3DCREATE_MIXED_VERTEXPROCESSING

IDirect3D9::CreateDevice を呼び出すときに、頂点処理動作フラグのいずれかを指定します。 混合モード フラグを使用すると、デバイスはソフトウェアとハードウェアの両方の頂点処理を実行できます。 1 つのデバイスに対して一度に設定できる頂点処理フラグは 1 つだけです。 純粋なデバイス (D3DCREATE_PUREDEVICE) を作成するときは、D3DCREATE_HARDWARE_VERTEXPROCESSING フラグを設定する必要があることに注意してください。

1 つのデバイスでデュアル頂点処理機能を回避するために、実行時に照会できるのはハードウェア頂点処理機能のみです。 ソフトウェア頂点処理機能は固定されており、実行時にクエリを実行することはできません。

D3DCAPS9 構造体の VertexProcessingCaps メンバーは、デバイスのハードウェア頂点処理機能を決定します。

ソフトウェア頂点処理では、次の機能がサポートされています。

さらに、次の表に、ソフトウェア頂点処理モードのデバイスの D3DCAPS9 構造体のメンバーに設定される値を示します。

メンバー ソフトウェア頂点処理機能
MaxActiveLights 無制限
MaxUserClipPlanes 6
MaxVertexBlendMatrices 4
MaxStreams 16
MaxVertexIndex 0xFFFFFFFF

 

一般に、頂点処理がバインドされているアプリケーションでは、HAL デバイスを使用する必要があります。 ソフトウェア頂点処理は、無制限のライト数やプログラム可能な頂点シェーダーの完全なサポートなど、頂点処理機能の保証されたセットを提供します。 HAL デバイス (ハードウェアとソフトウェアの両方の頂点処理をサポートする唯一のデバイスの種類) を使用する場合は、いつでもソフトウェアとハードウェアの頂点処理を切り替えることができます。 唯一の要件は、ソフトウェア頂点処理に使用される頂点バッファーをシステム メモリに割り当てる必要があるということです。

Direct3D デバイス