D3DXSplitMesh-Funktion
Teilt ein Gitternetz in Gitternetze auf, die kleiner als die angegebene Größe sind.
Syntax
void D3DXSplitMesh(
_In_ LPD3DXMESH pMeshIn,
_In_ const DWORD *pAdjacencyIn,
_In_ const DWORD MaxSize,
_In_ const DWORD Options,
_Out_ DWORD *pMeshesOut,
_Out_ LPD3DXBUFFER *ppMeshArrayOut,
_Out_ LPD3DXBUFFER *ppAdjacencyArrayOut,
_Out_ LPD3DXBUFFER *ppFaceRemapArrayOut,
_Out_ LPD3DXBUFFER *ppVertRemapArrayOut
);
Parameter
-
pMeshIn [ In]
-
Typ: LPD3DXMESH
Zeiger auf eine ID3DXMesh-Schnittstelle, die das Quellgitternetz darstellt.
-
pAdjacencyIn [ In]
-
Typ: const DWORD *
Zeiger auf ein Array von drei DWORDs pro Gesicht, die die drei Nachbarn für jedes Gesicht im Gitternetz angeben, die vereinfacht werden sollen.
-
MaxSize [ In]
-
Typ: const DWORD
Maximale Anzahl von Scheitelzeichen im resultierenden Gitter.
-
Optionen [ In]
-
Typ: const DWORD
Optionsflags für die neuen Gitter.
-
pMeshesOut [ out]
-
Typ: DWORD*
Anzahl der zurückgegebenen Gitternetze.
-
ppMeshArrayOut [ out]
-
Typ: LPD3DXBUFFER*
Puffer, der ein Array von ID3DXMesh-Schnittstellen für die neuen Gitternetze enthält. Für ein Quellgitternetz, das in n Gitternetze aufgeteilt ist, ist ppMeshArrayOut ein Array von n ID3DXMesh-Zeigern.
-
ppAdjacencyArrayOut [ out]
-
Typ: LPD3DXBUFFER*
Puffer, der ein Array von Adjacency-Arrays (DWORDs) für die neuen Gitternetze enthält. Siehe ID3DXBuffer. Dieser Parameter ist optional.
-
ppFaceRemapArrayOut [ out]
-
Typ: LPD3DXBUFFER*
Puffer mit einem Array von Gesichtszuordnungsarrays (Face Remap Arrays, DWORDs) für die neuen Gitter. Siehe ID3DXBuffer. Dieser Parameter ist optional.
-
ppVertRemapArrayOut [ out]
-
Typ: LPD3DXBUFFER*
Puffer mit einem Array von Vertex-Neuzuordnungsarrays für die neuen Gitter. Siehe ID3DXBuffer. Dieser Parameter ist optional.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert D3D _ OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Werte sein: D3DERR _ INVALIDCALL, D3DXERR _ INVALIDDATA, E _ OUTOFMEMORY.
Hinweise
Diese Funktion wird häufig verwendet, um ein Gitternetz mit 32-Bit-Indizes (mehr als 65535 Scheitelungen) in mehr als ein Gitternetz zu unterteilen, von denen jedes über 16-Bit-Indizes verfügt.
Die Arrays adjacency, vertex remap und face remap sind Arrays, bei denen jedes Array n DWORD-Zeiger enthält, gefolgt von den DWORD-Daten, auf die die Zeiger verweisen. Um beispielsweise die Gesichtszuordnungsinformationen für Gesicht 3 in Gitternetz 2 zu erhalten, könnte der folgende Code verwendet werden, vorausgesetzt, die Gesichtszuordnungsdaten wurden in einer Variablen namens ppFaceRemapArrayOut zurückgegeben.
const DWORD **face_remaps =
static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];
Anforderungen
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|