Microsoft DirectX 8.0 (Visual Basic) |
object.CreateSPMesh( _ Mesh As D3DXMesh, _ Adjacency As Any, _ VertexAttributeWeights As Any, _ VertexWeights As Any) As D3DXSPMesh
作成された単純化メッシュを表す、D3DXSPMesh オブジェクト。
失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。
D3DXERR_CANNOTATTRSORT |
D3DERR_INVALIDCALL |
E_OUTOFMEMORY |
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
単純化メッシュは、メッシュを単純化して、三角形と面の数を減らすために使用する。
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 ' このコードでは、すべての引数が ' 正しく初期化されていると仮定している。 Call D3DX8.CreateSPMesh(Mesh, ByVal D3DXbAdjacency.GetBufferPointer, VAttWeights, Vweights )