Partager via


Fonction D3DXUVAtlasPartition

Créez un atlas UV pour un maillage.

Syntaxe

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
);

Paramètres

pMesh [in]

Type : LPD3DXMESH

Pointeur vers un maillage d’entrée (voir ID3DXMesh) qui contient la géométrie de l’objet pour le calcul de l’atlas. Au minimum, le maillage doit contenir des données de position et des coordonnées de texture 2D.

dwMaxChartNumber [in]

Type : UINT

Nombre maximal de graphiques dans ant le maillage. Consultez les remarques sur les modes de partitionnement. Utilisez 0 pour indiquer à D3DX que l’atlas doit être paramétré en fonction de stretch.

fMaxStretch [in]

Type : FLOAT

Nombre d’étirements autorisés. 0 signifie qu’aucun étirement n’est autorisé, 1 signifie que toute quantité d’étirement peut être utilisée.

dwTextureIndex [in]

Type : DWORD

Index de coordonnées de texture de base zéro qui identifie l’ensemble de coordonnées de texture à utiliser.

pdwAdjacency [in]

Type : const DWORD*

Pointeur vers un tableau de données d’adjacence avec 3 DWORD par visage, indiquant les triangles adjacents les uns aux autres (voir ID3DXBaseMesh::GenerateAdjacency).

pdwFalseEdges

Type : const DWORD*

Tableau avec 3 DWORDS par visage. Chaque visage indique si un bord est faux ou non. Un bord non faux est indiqué par -1, un faux bord est indiqué par toute autre valeur. Cela permet de paramétrer un maillage de quads où les bords au milieu de chaque quad ne seront pas coupés.

pfIMTArray [in]

Type : FLOAT*

Pointeur vers un tableau de tenseurs de métriques intégrés qui décrit comment étirer un triangle (voir IntegratedMetricTensor).

pCallback [in]

Type : LPD3DXUVATLASCB

Pointeur vers une fonction de rappel (voir LPD3DXUVATLASCB) utile pour surveiller la progression.

fCallbackFrequency [in]

Type : FLOAT

Spécifiez la fréquence à laquelle D3DX appelle le rappel ; une valeur par défaut raisonnable est 0,0001f.

pUserContent [in]

Type : LPVOID

Pointeur vers une valeur définie par l’utilisateur qui est passée à la fonction de rappel ; généralement utilisé par une application pour passer un pointeur vers une structure de données qui fournit des informations de contexte pour la fonction de rappel.

dwOptions [in]

Type : DWORD

Spécifiez la qualité des graphiques générés en combinant un ou plusieurs indicateurs D3DXUVATLAS .

ppMeshOut [in]

Type : LPD3DXMESH*

Pointeur vers le maillage créé avec l’atlas (voir ID3DXMesh).

pFacePartitioning [out]

Type : LPD3DXBUFFER

Pointeur vers un tableau des données de partitionnement du visage final. Chaque élément contient un DWORD par visage (voir ID3DXBuffer).

ppVertexRemapArray [out]

Type : LPD3DXBUFFER*

Pointeur vers un tableau de sommets remappés. Chaque élément de tableau identifie le sommet d’origine d’où provient chaque sommet final (si le vertex a été fractionné lors du remapping). Chaque élément de tableau contient un DWORD par sommet.

ppPartitionResultAdjacency

Type : LPD3DXBUFFER*

Adresse d’un pointeur vers une interface ID3DXBuffer . Cette mémoire tampon contiendra un tableau de trois DWORD par visage qui spécifient les trois voisins pour chaque face dans le maillage de sortie. Ce paramètre ne doit pas avoir la valeur NULL, car l’appel suivant à D3DXUVAtlasPack() l’exige.

pfMaxStretchOut [out]

Type : FLOAT*

Pointeur vers la valeur d’étirement maximale générée par l’algorithme atlas. La plage est comprise entre 0,0 et 1,0.

pdwNumChartsOut [out]

Type : UINT*

Pointeur vers le nombre de graphiques créés par l’algorithme atlas. Si dwMaxChartNumber est trop faible, ce paramètre retourne le nombre minimal de graphiques requis pour créer un atlas.

Valeur retournée

Type : HRESULT

Si la fonction réussit, la valeur de retour est D3D_OK ; sinon, la valeur est D3DERR_INVALIDCALL.

Notes

D3DXUVAtlasPartition est similaire à D3DXUVAtlasCreate, sauf que D3DXUVAtlasPartition n’effectue pas l’étape d’emballage finale.

Spécifications

Condition requise Valeur
En-tête
D3DX9Mesh.h
Bibliothèque
D3dx9.lib

Voir aussi

Fonctions UVAtlas

Outil uv Atlas Command-Line (uvatlas.exe)