Microsoft DirectX 8.0 (Visual Basic)

D3DXMesh.ConvertAdjacencyToPointReps

メッシュのポイント表現を生成する。

object.ConvertAdjacencyToPointReps( _ 
    Adjacency As Any, _ 
    PointRep As Any)

指定項目

object
D3DXMesh オブジェクトを表すオブジェクト式。
Adjacency
メッシュの面隣接性配列の転送先バッファを表す、Long 値の配列の最初の要素。面隣接性は、配列の配列として格納される。最も内側の配列は、隣接する三角形の 3 つのインデックスで、外側の配列は、メッシュ内の三角形ごとの面隣接性の 1 セットである。この配列のこのサイズは、面の数の最大値に 3 を乗算したものである。「注意」を参照すること。
PointRep
メッシュのポイント表現を表す、Long 値の配列の最初の要素。ポイント表現は、頂点ごとに 1 つの要素を伴うインデックスの配列として格納される。この配列のサイズはメッシュに含まれる頂点の数である。頂点のラベルを変更する必要がない場合は、このパラメータに ByVal 0 を指定できる。

エラー コード

失敗した場合はエラーが発生し、Err.Number に次のいずれかの値が設定される。

D3DERR_INVALIDCALL
D3DXERR_INVALIDMESH
E_OUTOFMEMORY

エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。

注意

次のサンプル コードは、D3DXBuffer オブジェクトを使用して隣接性情報を渡す方法を示している。

Dim D3DXbAdjacency As D3DXBuffer
Dim PointRep As Any

' このコードでは D3DXbAdjacency および PointRep が正しく
' 初期化されていると仮定している。
Call D3DX8.ConvertPointRepsToAdjacency(ByVal D3DXbAdjacency.GetBufferPointer, PointRep)

注意

ポイント表現は、異なる放線座標、u 座標と v 座標、カラー データなどを使用するのではなく、同じ x 座標、y 座標、z 座標で 2 つの頂点を融合することにより、メッシュの隣接性を記述する方法である。完全になめらかな (しわ、境界、または穴がない) メッシュでは、ポイント表現は冗長である。その場合、ハッシュ テーブルを使用して頂点インデックスを共有するエッジを検索することによって、隣接する三角形を計算することができる。しわおよびテクスチャ境界の場合は、メッシュ内の頂点を構成する共に配置されている頂点グループのハッシュ テーブルで使用する一意の頂点インデックスを指定するために、ポイント表現が必要となる。

参照

D3DXMesh.ConvertPointRepsToAdjacency