D3DXUVAtlasPartition-Funktion
Erstellen Sie einen UV-Atlas für ein Gitter.
Syntax
HRESULT D3DXUVAtlasPartition(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContent,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER pFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
LPD3DXBUFFER *ppPartitionResultAdjacency,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
Parameter
-
pMesh [in]
-
Typ: LPD3DXMESH
Zeiger auf ein Eingabegitter (siehe ID3DXMesh), das die Objektgeometrie zum Berechnen des Atlas enthält. Das Gitter muss mindestens Positionsdaten und 2D-Texturkoordinaten enthalten.
-
dwMaxChartNumber [in]
-
Typ: UINT
Die maximale Anzahl von Diagrammen, in die das Gitter aufgeteilt werden soll. Siehe Hinweise zu den Partitionierungsmodi. Verwenden Sie 0, um D3DX mitzuteilen, dass der Atlas basierend auf Stretch parametrisiert werden soll.
-
fMaxStretch [in]
-
Typ: FLOAT
Die zulässige Dehnungsmenge. 0 bedeutet, dass keine Dehnung zulässig ist, 1 bedeutet, dass eine beliebige Menge an Dehnung verwendet werden kann.
-
dwTextureIndex [in]
-
Typ: DWORD
Nullbasierter Texturkoordinatenindex, der angibt, welche Texturkoordinaten verwendet werden sollen.
-
pdwAdjacency [in]
-
Typ: const DWORD*
Ein Zeiger auf ein Array von Adjacency-Daten mit 3 DWORDs pro Gesicht, der angibt, welche Dreiecke nebeneinander liegen (siehe ID3DXBaseMesh::GenerateAdjacency).
-
pdwFalseEdges
-
Typ: const DWORD*
Ein Array mit 3 DWORDS pro Gesicht. Jede Face gibt an, ob ein Rand false ist oder nicht. Ein nicht falscher Rand wird durch -1 angegeben, ein falscher Rand durch einen beliebigen anderen Wert. Dies ermöglicht die Parametrisierung eines Gitters von Quads, bei dem die Kanten in der Mitte jedes Quads nicht geschnitten werden.
-
pfIMTArray [in]
-
Typ: FLOAT*
Ein Zeiger auf ein Array von integrierten Metrik tensors, der beschreibt, wie ein Dreieck gestreckt wird (siehe IntegratedMetricTensor).
-
pCallback [in]
-
Typ: LPD3DXUVATLASCB
Ein Zeiger auf eine Rückruffunktion (siehe LPD3DXUVATLASCB), die für die Überwachung des Fortschritts nützlich ist.
-
fCallbackFrequency [in]
-
Typ: FLOAT
Geben Sie an, wie oft D3DX den Rückruf aufruft. ein angemessener Standardwert ist 0.0001f.
-
pUserContent [in]
-
Typ: LPVOID
Zeiger auf einen benutzerdefinierten Wert, der an die Rückruffunktion übergeben wird; wird in der Regel von einer Anwendung verwendet, um einen Zeiger auf eine Datenstruktur zu übergeben, die Kontextinformationen für die Rückruffunktion bereitstellt.
-
dwOptions [in]
-
Typ: DWORD
Geben Sie die Qualität der Diagramme an, die durch Kombinieren eines oder mehrerer D3DXUVATLAS-Flags generiert werden.
-
ppMeshOut [in]
-
Typ: LPD3DXMESH*
Zeiger auf das erstellte Gitter mit dem Atlas (siehe ID3DXMesh).
-
pFacePartitioning [out]
-
Typ: LPD3DXBUFFER
Ein Zeiger auf ein Array der endgültigen Gesichtspartitionierungsdaten. Jedes Element enthält eine DWORD pro Gesicht (siehe ID3DXBuffer).
-
ppVertexRemapArray [out]
-
Typ: LPD3DXBUFFER*
Ein Zeiger auf ein Array neu zugeordneter Scheitelpunkte. Jedes Arrayelement identifiziert den ursprünglichen Scheitelpunkt, von dem jeder letzte Scheitelpunkt stammt (wenn der Scheitelpunkt während der Neuzuordnung geteilt wurde). Jedes Arrayelement enthält ein DWORD pro Scheitelpunkt.
-
ppPartitionResultAdjacency
-
Typ: LPD3DXBUFFER*
Adresse eines Zeigers auf eine ID3DXBuffer-Schnittstelle . Dieser Puffer enthält ein Array von drei DWORDs pro Gesicht, die die drei Nachbarn für jedes Gesicht im Ausgabegitter angeben. Dieser Parameter darf nicht NULL sein, da er für den nachfolgenden Aufruf von D3DXUVAtlasPack() erforderlich ist.
-
pfMaxStretchOut [out]
-
Typ: FLOAT*
Ein Zeiger auf den maximalen Stretchwert, der vom Atlas-Algorithmus generiert wird. Der Bereich liegt zwischen 0,0 und 1,0.
-
pdwNumChartsOut [out]
-
Typ: UINT*
Ein Zeiger auf die Anzahl der vom Atlas-Algorithmus erstellten Diagramme. Wenn dwMaxChartNumber zu niedrig ist, gibt dieser Parameter die Mindestanzahl von Diagrammen zurück, die zum Erstellen eines Atlas erforderlich sind.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK; Andernfalls wird der Wert D3DERR_INVALIDCALL.
Bemerkungen
D3DXUVAtlasPartition ähnelt D3DXUVAtlasCreate, mit der Ausnahme, dass D3DXUVAtlasPartition den letzten Packschritt nicht ausführt.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch