D3DXUVAtlasCreate-Funktion
Erstellen Sie einen UV-Atlas für ein Gitternetz.
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 Eingabegittermodell (siehe ID3DXMesh),das die Objektgeometrie zum Berechnen des Atlas enthält. Das Gitternetz muss mindestens Positionsdaten und 2D-Texturkoordinaten enthalten.
-
dwMaxChartNumber [ In]
-
Typ: UINT
Die maximale Anzahl von Diagrammen, in die das Netz partitioniert werden soll. Weitere Informationen finden Sie in den Hinweisen 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 Menge an Stretching. 0 bedeutet, dass kein Stretching zulässig ist, 1 bedeutet, dass eine beliebige Menge an Stretching verwendet werden kann.
-
dwWidth [ In]
-
Typ: UINT
Texturbreite.
-
dwHeight [ In]
-
Typ: UINT
Texturhöhe.
-
fGutter [ In]
-
Typ: FLOAT
Der mindeste Abstand zwischen zwei Diagrammen im Atlas in Texel. Der Bundsteg wird immer um die Breite skaliert. Wenn also ein Bundsteg von 2,5 für eine Textur mit 512 x 512 verwendet wird, beträgt der Mindestabstand zwischen zwei Diagrammen 2,5 /512,0 Texel.
-
dwTextureIndex [ In]
-
Typ: DWORD
Nullbasierter Texturkoordinatenindex, der angibt, welche Menge von Texturkoordinaten verwendet werden soll.
-
pdwAdjazenz [ In]
-
Typ: const DWORD *
Ein Zeiger auf ein Array von Adjazenzdaten. mit 3 DWORDs pro Gesicht, die angeben, welche Dreiecke nebeneinander angeordnet sind (siehe ID3DXBaseMesh::GenerateAdencyency).
-
pdwFalseEdges
-
Typ: const DWORD *
Ein Array mit 3 DWORDS pro Gesicht. Jedes Gesicht gibt an, ob ein Rand false ist oder nicht. Ein nicht falscher Rand wird durch -1 angegeben, ein falscher Rand durch einen anderen Wert. Dies ermöglicht die Parametrisierung eines Gitternetzes von Quadern, wobei die Ränder in der Mitte jedes Quaders nicht geschnitten werden.
-
pfIMTArray [ In]
-
Typ: FLOAT*
Ein Zeiger auf ein Array integrierter Metrik tensors, das 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 sinnvoller 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 Gitternetz 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 mindest erforderliche Anzahl von Diagrammen zurück, um einen Atlas zu erstellen.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ausgeführt wird, lautet der Rückgabewert D3D _ OK. Andernfalls ist der Wert D3DERR _ INVALIDCALL.
Bemerkungen
D3DXUVAtlasCreate kann die Meshgeometrie auf zwei Arten partitionieren:
- Basierend auf der Anzahl der Diagramme
- Basierend auf der maximal zulässigen Streckung. Wenn die maximal zulässige Streckung 0 ist, befindet sich jedes Dreieck wahrscheinlich in einem eigenen Diagramm.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Header |
|
| Bibliothek |
|