次の方法で共有


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

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

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

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

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

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

頂点バッファー