ID3DXMesh::Optimize-Methode
Generiert ein neues Gitternetz mit neu angeordneten Gesichtern und Scheitelpunkten, um die Zeichnungsleistung zu optimieren.
Syntax
HRESULT Optimize(
[in] DWORD Flags,
[in] const DWORD *pAdjacencyIn,
[in, out] DWORD *pAdjacencyOut,
[in, out] DWORD *pFaceRemap,
[out] LPD3DXBUFFER *ppVertexRemap,
[out] LPD3DXMESH *ppOptMesh
);
Parameter
-
Flags [ In]
-
Typ: DWORD
Gibt den Typ der auszuführenden Optimierung an. Dieser Parameter kann auf eine Kombination aus einem oder mehreren Flags aus D3DXMESHOPT und D3DXMESH festgelegt werden (mit Ausnahme von D3DXMESH _ 32BIT, D3DXMESH _ IB _ WRITEONLY und D3DXMESH _ WRITEONLY).
-
pAdencyencyIn [ In]
-
Typ: const DWORD *
Zeiger auf ein Array von drei DWORDs pro Gesicht, das die drei Nachbarn für jedes Gesicht im Quellgitternetz angibt. Wenn der Rand keine angrenzenden Gesichter hat, wird der Wert 0xffffffff. Siehe Hinweise.
-
pAdencyencyOut [ in, out]
-
Typ: DWORD*
Zeiger auf ein Array von drei DWORDs pro Gesicht, das die drei Nachbarn für jedes Gesicht im optimierten Netz angibt. Wenn der Rand keine angrenzenden Gesichter hat, wird der Wert 0xffffffff.
-
pFaceRemap [ in, out]
-
Typ: DWORD*
Ein Array von DWORDs , eins pro Gesicht, das das ursprüngliche Gitternetz identifiziert, das jedem Gesicht im optimierten Gitternetz entspricht. Wenn der für dieses Argument angegebene Wert NULL ist, werden keine Gesichtszuordnungsdaten zurückgegeben.
-
ppVertexRemap [ out]
-
Typ: LPD3DXBUFFER*
Adresse eines Zeigers auf eine ID3DXBuffer-Schnittstelle, die ein DWORD für jeden Scheitelpunkt enthält, der angibt, wie die neuen Scheitelpunkte den alten Scheitelpunkten zugeordnet werden. Diese Neuzuordnung ist nützlich, wenn Sie externe Daten basierend auf der neuen Scheitelpunktzuordnung ändern müssen.
-
ppOptMesh [ out]
-
Typ: LPD3DXMESH*
Adresse eines Zeigers auf eine ID3DXMesh-Schnittstelle, die das optimierte Gitternetz darstellt.
Rückgabewert
Typ: HRESULT
Wenn die Methode erfolgreich ist, lautet der Rückgabewert D3D _ OK. Wenn die Methode fehlschlägt, kann der Rückgabewert einer der folgenden Werte sein: D3DERR _ INVALIDCALL, E _ OUTOFMEMORY.
Hinweise
Diese Methode generiert ein neues Gitternetz. Vor dem Ausführen von Optimize muss eine Anwendung einen Adjazenzpuffer generieren, indem ID3DXBaseMesh::GenerateAdjaencyaufgerufen wird. Der Adjazenzpuffer enthält Adjazenzdaten, z. B. eine Liste von Kanten und den nebeneinander liegenden Gesichtern.
Diese Methode ist der ID3DXBaseMesh::CloneMesh-Methode sehr ähnlich, mit der Ausnahme, dass sie beim Generieren des neuen Klons des Gitternetzes Optimierungen ausführen kann. Das Ausgabegitternetz erbt alle Erstellungsparameter des Eingabegitters.
Anforderungen
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|