Microsoft DirectX 8.0 (Visual Basic) |
object.SimplifyMesh( _ Mesh As D3DXMesh, _ Adjacency As Any, _ VertexAttributeWeights As Any, _ VertexWeights As Any, _ MinValue As Long, _ Options As Long) As D3DXMesh
返された単純化メッシュを表す、D3DXMesh オブジェクト。
失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。
D3DERR_INVALIDCALL |
E_OUTOFMEMORY |
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
このメソッドは、MinValue の頂点または面を持つメッシュを生成する。
単純化プロセスによってメッシュを MinValue まで減らすことができない場合でも呼び出しは継続される。これは、MinValue が絶対的な最小値ではなく、希望の最小値であるからである。
VertexAttributeWeights を ByVal 0 に設定した場合、値はデフォルトの D3DXATTRIBUTEWEIGHTS 型に従って割り当てられる。
Dim AttribruteWeights As D3DXATTRIBUTEWEIGHTS With _ .position = 1 .Boundary = 1 .Normal = 1 .diffuse = 0 .specular = 0 .Tex(7) = 0 End With
大部分のアプリケーションでは、このデフォルトの型を使用する。デフォルトではジオメトリと法線の調整のみが考慮される。その他のメンバ フィールドを修正する必要があるのは、特別な場合のみである。
次のサンプル コードは、D3DXBuffer オブジェクトを使用して隣接性情報を渡す方法を示している。
Dim Mesh As D3DXMesh Dim D3DXbAdjacency As D3DXBuffer Dim VAttWeights As Any Dim VWeights As Any Dim MinV As Long Dim Opts As Long ' このコードでは、すべての引数が ' 正しく初期化されていると仮定している。 Call D3DX8.SimplifyMesh(Mesh, ByVal D3DXbAdjacency.GetBufferPointer, VAttWeights, Vweights, MinV, Opts )