Fonction D3DXUVAtlasCreate

Créez un atlas UV pour un maillage.

Syntaxe

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

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.

dwWidth [in]

Type : UINT

Largeur de texture.

dwHeight [in]

Type : UINT

Hauteur de texture.

fGutter [in]

Type : FLOAT

Distance minimale, en texels, entre deux graphiques de l’atlas. La gouttière est toujours mise à l’échelle en fonction de la largeur ; ainsi, si une gouttière de 2,5 est utilisée sur une texture 512x512, la distance minimale entre deux graphiques est de 2,5 / 512,0 texels.

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 DWORDs 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. Consultez D3DXUVATLAS.

ppMeshOut [in]

Type : LPD3DXMESH*

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

ppFacePartitioning [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.

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

D3DXUVAtlasCreate peut partitionner la géométrie de maillage de deux manières :

  • En fonction du nombre de graphiques
  • En fonction de l’étendue maximale autorisée. Si l’étendue maximale autorisée est 0, chaque triangle sera probablement dans son propre graphique.

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)