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 |
|
Bibliothèque |
|
Voir aussi