Microsoft DirectX 8.0 (Visual Basic) |
object.GeneratePMesh( _ Mesh As D3DXMesh, _ Adjacency As Any, _ VertexAttributeWeights As Any, _ VertexWeights As Any, _ MinValue As Long, _ Options As Long) As D3DXPMesh
作成されるプログレッシブ メッシュを表す、D3DXPMesh オブジェクト。
失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。
D3DERR_INVALIDCALL |
D3DXERR_CANNOTATTRSORT |
E_OUTOFMEMORY |
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
このメソッドは、LOD (Level of Detail) を現在の値から 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.GeneratePMesh(Mesh, ByVal D3DXbAdjacency.GetBufferPointer, VAttWeights, Vweights, MinV, Opts )