Application-Managed リソースと割り当て戦略 (Direct3D 9)
マネージド頂点バッファーまたはインデックス バッファー リソースは、作成時に D3DUSAGE_DYNAMICを指定して動的に宣言することはできません。 これには、頂点バッファーの内容を変更するたびに、追加のコピーが必要になります。 動的頂点バッファーは、バイナリ空間パーティション 分割ツリーまたはその他の可視性データ構造から取り込まれた動的ジオメトリとデータをレンダリングするためのものです。 これは、目的の形式のバッファーを事前に割り当てることで実現できます。 これらのリソースは、アプリケーション内のリソース マネージャーによってアプリケーションのニーズをサポートするために区画化されます。 動的な頂点バッファーの合計数は少なくなります。これは、アプリケーションが同時に使用する頂点ストライドが数個だけであり、一意のストライドにのみ異なる頂点バッファーが必要であるためです。 このように動的リソースを管理する場合は、リソースに対する高頻度の要求によってアプリケーションのパフォーマンスが大幅に低下しないようにします。
Direct3D とアプリケーションの両方で管理されているリソースを使用する場合は、Direct3D で管理されるリソースを作成する前に、D3DPOOL_DEFAULTメモリにアプリケーションで管理されるリソースを割り当てます。 これにより、メモリ マネージャーは使用可能なメモリの正確な数を維持できます。
関連トピック