Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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