次の方法で共有


FVF 頂点バッファー (Direct3D 9)

IDirect3DDevice9::CreateVertexBuffer メソッドの FVF パラメーターを、有効な FVF コードである必要がある 0 以外の値に設定すると、バッファーの内容が FVF コードによって特徴付けられていることを示します。 FVF コードを使用して作成された頂点バッファーは、FVF 頂点バッファーと呼ばれます。 IDirect3DDevice9 の一部のメソッドまたは使用には FVF 頂点バッファーが必要です。また、FVF 以外の頂点バッファーが必要なメソッドもあります。 FVF 頂点バッファーは、 IDirect3DDevice9::P rocessVertices の宛先頂点バッファー引数として必要です。

FVF 頂点バッファーは、任意のストリーム番号のソース データ ストリームにバインドできます。

FVF 頂点バッファーにD3DFVF_XYZRHW コンポーネントが存在すると、そのバッファー内の頂点が処理されたことを示します。 IDirect3DDevice9::P rocessVertices 変換先の頂点バッファーに使用される頂点バッファーは、後処理する必要があります。 固定関数シェーダー入力に使用される頂点バッファーは、前処理または後処理できます。 頂点バッファーが後処理される場合、シェーダーは効果的にバイパスされ、データはプリミティブ クリッピングおよびセットアップ モジュールに直接渡されます。

FVF 頂点バッファーは、頂点シェーダーと共に使用できます。 また、頂点ストリームは、FVF 以外の頂点バッファーと同じ頂点形式を表すことができます。 これらは、個別の頂点バッファーからデータを入力するために使用する必要はありません。 新しい頂点ストリームの柔軟性が高いほど、データを分離したままにして、より適切に機能する必要があるアプリケーションが可能になりますが、必須ではありません。 アプリケーションでインターリーブされたデータを事前に維持できる場合は、パフォーマンスが向上します。 アプリケーションがすべてのレンダリング呼び出しの前にデータのみをインターリーブする場合は、API またはハードウェアが複数のストリームでこれを行えるようにする必要があります。

頂点のパフォーマンスで最も重要なことは、32 バイトの頂点を使用し、キャッシュの順序を適切に維持することです。

頂点バッファー