D3DXUVAtlasPartition fonction)

Créez un Atlas UV pour une maille.

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 [ dans]

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, la maille doit contenir des données de position et des coordonnées de texture 2D.

dwMaxChartNumber [ dans]

Type : uint

Nombre maximal de graphiques dans lesquels partitionner 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 [ dans]

Type : float

Quantité d’étirement autorisée. 0 signifie qu’aucun étirement n’est autorisé, 1 signifie qu’une quantité d’étirement peut être utilisée.

dwTextureIndex [ dans]

Type : DWORD

Index de coordonnées de texture de base zéro qui identifie le jeu de coordonnées de texture à utiliser.

pdwAdjacency [ dans]

Type : const DWORD *

Pointeur vers un tableau de données d’contiguïté avec 3 DWORDs par face, indiquant quels triangles sont adjacents les uns aux autres (voir ID3DXBaseMesh :: GenerateAdjacency).

pdwFalseEdges

Type : const DWORD *

Tableau avec 3 DWORDs par face. Chaque visage indique si une arête est false ou non. Un bord non-faux est indiqué par-1, un faux bord est indiqué par une autre valeur. Cela permet le paramétrage d’une maille de quatre cœurs où les bords du milieu de chaque quadruple ne sont pas coupés.

pfIMTArray [ dans]

Type : float*

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

pCallback [ dans]

Type : LPD3DXUVATLASCB

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

fCallbackFrequency [ dans]

Type : float

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

pUserContent [ dans]

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 [ dans]

Type : DWORD

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

ppMeshOut [ dans]

Type : LPD3DXMESH*

Pointeur vers la maille créée avec l’Atlas (voir ID3DXMesh).

pFacePartitioning [ à]

Type : LPD3DXBUFFER

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

ppVertexRemapArray [ à]

Type : LPD3DXBUFFER*

Pointeur vers un tableau de vertex remappés. Chaque élément de tableau identifie le sommet d’origine à partir duquel provient chaque sommet final (si le Vertex a été fractionné pendant le remappage). Chaque élément de tableau contient une valeur DWORD par vertex.

ppPartitionResultAdjacency

Type : LPD3DXBUFFER*

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

pfMaxStretchOut [ à]

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 [ à]

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 est réussie, la valeur de retour est D3D _ OK ; sinon, la valeur est D3DERR _ INVALIDCALL.

Remarques

D3DXUVAtlasPartition est similaire à D3DXUVAtlasCreate, à ceci près que D3DXUVAtlasPartition n’effectue pas l’étape de compression finale.

Configuration requise

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

Voir aussi

UVAtlas, fonctions

Outil Command-Line d’Atlas UV (uvatlas.exe)