Platform SDK: DirectX |
頂点バッファを最適化すると、システムはバッファの内容を修正し、頂点の処理またはレンダリングのパフォーマンスが良好になる。頂点がどのように最適化されるかは、プラットフォーム固有であり、変更されることがある。このため、最適化された頂点バッファの内容をロックしたり、アクセスすることはできない。
ハードウェアおよびソフトウェアの両方のパフォーマンスは、頂点バッファを最適化することで改善できる。頂点バッファの最適化は、頂点バッファがハードウェアまたはソフトウェアの頂点処理のどちらのために使用されているかによって異なる。D3DVBCAPS_SYSTEMMEMORY フラグを指定して作成した頂点バッファは、ソフトウェア頂点処理に対して最適化され、IDirect3DVertexBuffer7::ProcessVertices メソッドまたは HAL デバイス (TnLHAL デバイスとは対照的) の頂点バッファ レンダリング メソッドでのみ使用できる。D3DVBCAPS_SYSTEMMEMORY フラグ (ドライバ最適化メモリ用) を指定しないで作成した頂点バッファは、ハードウェア頂点処理に対して最適化され、したがって、TnLHAL デバイスのレンダリング メソッドでのみ使用できる。最適化された頂点バッファは、IDirect3DVertexBuffer7::ProcessVertices または IDirect3DVertexBuffer7::ProcessVerticesStrided メソッドの転送先バッファとして使用することはできない。
IDirect3DVertexBuffer7::Optimize メソッドを呼び出して頂点バッファを最適化する。頂点バッファを最適化すると、頂点操作とレンダリングのパフォーマンスが改善される。IDirect3DVertexBuffer7::Optimize メソッドは 2 つのパラメータを受け取るが、そのうち 1 つだけが使用される。lpD3DDevice パラメータに頂点を最適化するデバイスのアドレスを設定し、最後のパラメータに 0 を設定する。ロックされた頂点バッファは、アンロックするまで最適化できない。
頂点を最適化されたフォーマットに保つことによりパフォーマンスを改善できる。ただし、最適化された頂点バッファは、スタティック ジオメトリだけに使用する。頂点バッファを一度最適化すると、最適化された内容を変更するためにロックすることはできないからである。最適化された頂点バッファは、IDirect3DVertexBuffer7::ProcessVertices メソッドおよび頂点バッファ レンダリング メソッドでのみ使用できる。
ハードウェアおよびソフトウェアの両方のパフォーマンスは、頂点バッファを最適化することで改善できる。頂点バッファの最適化は、頂点バッファがハードウェアまたはソフトウェアの頂点処理のどちらのために使用されているかによって異なる。D3DVBCAPS_SYSTEMMEMORY フラグを指定して作成した頂点バッファは、ソフトウェア頂点処理に対してのみ最適化され、Direct3DVertexBuffer7.ProcessVertices メソッドまたは HAL デバイス (TnLHAL デバイスとは対照的) の頂点バッファ レンダリング メソッドでのみ使用できる。D3DVBCAPS_SYSTEMMEMORY フラグ (ドライバ最適化メモリ用) を指定しないで作成した頂点バッファは、ハードウェア頂点処理に対して最適化され、したがって、TnLHAL デバイスのレンダリング メソッドでのみ使用できる。最適化された頂点バッファは、Direct3DVertexBuffer7.ProcessVertices メソッドの転送先バッファとして使用することはできない。
Direct3DVertexBuffer7.Optimize メソッドを呼び出して頂点バッファを最適化する。頂点バッファを最適化すると、頂点処理およびレンダリングのパフォーマンスが改善される。Direct3DVertexBuffer7.Optimize メソッドはパラメータを 1 つ受け取る。このパラメータには、頂点の最適化の対象となる Direct3DDevice7 オブジェクトを設定する。ロックされている頂点バッファは、ロック解除するまで最適化することはできない。
頂点を最適化されたフォーマットに保つことによりパフォーマンスを改善できる。ただし、最適化された頂点バッファは、スタティック ジオメトリだけに使用する。頂点バッファを一度最適化すると、最適化された内容を変更するためにロックすることはできないからである。最適化された頂点バッファは、Direct3DVertexBuffer7.ProcessVertices メソッドおよび頂点バッファ レンダリング メソッドでのみ使用できる。