D3DXSplitMesh-Funktion
Teilt ein Gitter in Gitter 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 Quellgitter darstellt.
-
pAdjacencyIn [in]
-
Typ: const DWORD*
Zeiger auf ein Array von drei DWORDs pro Gesicht, das die drei Nachbarn für jedes Gesicht im zu vereinfachenden Gitter angibt.
-
MaxSize [in]
-
Typ: const DWORD
Maximale Anzahl von Scheitelpunkten im resultierenden Gitter.
-
Optionen [in]
-
Typ: const DWORD
Optionsflags für die neuen Gitter.
-
pMeshesOut [out]
-
Typ: DWORD*
Anzahl der zurückgegebenen Gitter.
-
ppMeshArrayOut [out]
-
Typ: LPD3DXBUFFER*
Puffer mit einem Array von ID3DXMesh-Schnittstellen für die neuen Gitter. Für ein Quellgitter, das in n Gitter unterteilt 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 Gitter enthält. Siehe ID3DXBuffer. Dieser Parameter ist optional.
-
ppFaceRemapArrayOut [out]
-
Typ: LPD3DXBUFFER*
Puffer, der ein Array von Gesichtsrezuordnungsarrays (DWORDs) für die neuen Gitter enthält. Siehe ID3DXBuffer. Dieser Parameter ist optional.
-
ppVertRemapArrayOut [out]
-
Typ: LPD3DXBUFFER*
Puffer mit einem Array von Vertex-Remap-Arrays für die neuen Gitter. Siehe ID3DXBuffer. Dieser Parameter ist optional.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird 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.
Bemerkungen
Eine häufige Verwendung dieser Funktion besteht darin, ein Gitter mit 32-Bit-Indizes (mehr als 65535 Scheitelpunkte) in mehr als ein Gitter aufzuteilen, das jeweils 16-Bit-Indizes aufweist.
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 von den Zeigern verwiesen wird. Beispielsweise könnte der folgende Code verwendet werden, um die Informationen zur Neuzuordnung von Gesichtern für Gesicht 3 in Mesh 2 abzurufen, vorausgesetzt, die Daten zur Gesichtszuordnung wurden in einer Variablen mit dem Namen ppFaceRemapArrayOut zurückgegeben.
const DWORD **face_remaps =
static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch