D3DXUVAtlasCreate-Funktion
Erstellen Sie einen UV-Atlas für ein Gitter.
Syntax
HRESULT D3DXUVAtlasCreate(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ UINT dwWidth,
_In_ UINT dwHeight,
_In_ FLOAT fGutter,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContext,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER *ppFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
Parameter
-
pMesh [in]
-
Typ: LPD3DXMESH
Zeiger auf ein Eingabegitter (siehe ID3DXMesh), das die Objektgeometrie zum Berechnen des Atlass enthält. Das Gitter muss mindestens Positionsdaten und 2D-Texturkoordinaten enthalten.
-
dwMaxChartNumber [in]
-
Typ: UINT
Die maximale Anzahl von Diagrammen, in die das Gitter partitioniert werden soll. Weitere Informationen finden Sie unter 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 Dehnung. 0 bedeutet, dass keine Dehnung zulässig ist, 1 bedeutet, dass eine beliebige Menge an Dehnung verwendet werden kann.
-
dwWidth [in]
-
Typ: UINT
Texturbreite.
-
dwHeight [in]
-
Typ: UINT
Texturhöhe.
-
fGutter [in]
-
Typ: FLOAT
Der Mindestabstand in Texels zwischen zwei Diagrammen auf dem Atlas. Die Rinne wird immer nach der Breite skaliert; Wenn also eine Rinne von 2,5 für eine Textur von 512 x 512 verwendet wird, beträgt der mindeste Abstand zwischen zwei Diagrammen 2,5 / 512,0 Texel.
-
dwTextureIndex [in]
-
Typ: DWORD
Nullbasierter Texturkoordinatenindex, der angibt, welcher Satz von Texturkoordinaten verwendet werden soll.
-
pdwAdjacency [in]
-
Typ: const DWORD*
Ein Zeiger auf ein Array von Adjacency-Daten. mit 3 DWORDs pro Gesicht, die angeben, welche Dreiecke nebeneinander liegen (siehe ID3DXBaseMesh::GenerateAdjacency).
-
pdwFalseEdges
-
Typ: const DWORD*
Ein Array mit 3 DWORDS pro Gesicht. Jedes Gesicht gibt an, ob eine Kante falsch ist oder nicht. Ein nicht falscher Rand wird durch -1 angegeben, ein falscher Rand wird durch einen anderen Wert angegeben. 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 tensoren, 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 vernünftiger 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 generierten Diagramme an. Siehe D3DXUVATLAS.
-
ppMeshOut [in]
-
Typ: LPD3DXMESH*
Zeiger auf das erstellte Gitter mit dem Atlas (siehe ID3DXMesh).
-
ppFacePartitioning [out]
-
Typ: LPD3DXBUFFER*
Ein Zeiger auf ein Array der endgültigen Gesichtspartitionierungsdaten. Jedes Element enthält ein 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.
-
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 von Diagrammen, die vom Atlas-Algorithmus erstellt wurden. Wenn dwMaxChartNumber zu niedrig ist, gibt dieser Parameter die Mindestanzahl von Diagrammen zurück, die zum Erstellen eines Atlass erforderlich sind.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, wird der Rückgabewert D3D_OK. Andernfalls ist der Wert D3DERR_INVALIDCALL.
Bemerkungen
D3DXUVAtlasCreate kann die Gittergeometrie auf zwei Arten partitionieren:
- Basierend auf der Anzahl der Diagramme
- Basierend auf der maximal zulässigen Stretch. Wenn die maximal zulässige Stretch 0 ist, befindet sich jedes Dreieck wahrscheinlich in einem eigenen Diagramm.
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch