Microsoft DirectX 8.0 (Visual Basic) |
メッシュの面および頂点の順番変更を制御し、パフォーマンスを最適化する。
object.OptimizeInplace( _ Flags As Long, _ AdjacencyIn As Any, _ AdjacencyOut As Any, _ FaceRemap As Any, _ VertexRemapOut As D3DXBuffer)
最適化フラグの D3DXMESHOPT_STRIPREORDER および D3DXMESHOPT_VERTEXCACHE はそれぞれ相互に排他的である。
失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。
D3DERR_INVALIDCALL |
D3DXERR_CANNOTATTRSORT |
E_OUTOFMEMORY |
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
出力メッシュは、入力メッシュのすべての作成パラメータを継承する。
次のサンプル コードは、D3DXBuffer オブジェクトを使用して隣接性情報を渡す方法を示している。
Dim Opts As Long Dim D3DXbAdjacencyIn As D3DXBuffer Dim D3DXbAdjacencyOut As Any Dim FaceRemap As Any Dim FaceRemap As D3DXBuffer ' このコードでは、すべての引数が ' 正しく初期化されていると仮定している。 Call D3DX8.OptimizeInPlace( Opts, ByVal D3DXbAdjacencyIn.GetBufferPointer, D3DXbAdjacencyOut, _ FaceRemap, FaceRemap )
注 メッシュがほかのメッシュと頂点バッファを共有している場合、D3DXMESHOPT_IGNOREVERTS フラグが Flags パラメータに設定されている場合を除き、このメソッドは失敗する。