Partager via


Fonction D3DXSHPRTCompSplitMeshSC

Utilisé avec les résultats compressés de la version de vertex du simulateur de transfert de radiance (PRT) précalculé. Une fois D3DXSHPRTCompSuperCluster appelé, cette fonction peut être utilisée pour fractionner le maillage en un groupe de visages/sommets par super cluster. Chaque super cluster contient tous les visages qui contiennent n’importe quel sommet classé dans l’un de ses clusters. Tous les sommets connectés à cet ensemble de visages sont également inclus dans le tableau retourné ppVertStatus indiquant si le vertex appartient ou non au super cluster.

Syntaxe

HRESULT D3DXSHPRTCompSplitMeshSC(
  _In_    UINT                          *pClusterIDs,
  _In_    UINT                          NumVertices,
  _In_    UINT                          NumCs,
  _In_    UINT                          *pSClusterIDs,
  _In_    UINT                          NumSCs,
  _In_    LPVOID                        pInputIB,
  _In_    BOOL                          InputIBIs32Bit,
  _In_    UINT                          NumFaces,
  _Inout_ LPD3DXBUFFER                  *ppIBData,
  _Inout_ UINT                          *pIBDataLength,
  _Inout_ BOOL                          OutputIBIs32Bit,
  _Inout_ LPD3DXBUFFER                  *ppFaceRemap,
  _Inout_ LPD3DXBUFFER                  *ppVertData,
  _Inout_ UINT                          *pVertDataLength,
  _Inout_ UINT                          *pSCClusterList,
  _Inout_ D3DXSHPRTSPLITMESHCLUSTERDATA *pSCData
);

Paramètres

pClusterIDs [in]

Type : UINT*

ID de cluster NumVertices (extraits d’une mémoire tampon compressée).)

NumVertices [in]

Type : UINT

Nombre de sommets dans le maillage d’origine.

NumCs [in]

Type : UINT

Nombre de clusters (paramètre d’entrée pour la compression.)

pSClusterIDs [in]

Type : UINT*

Tableau de taille NumC qui contiendra des ID de super cluster.

NumSC [in]

Type : UINT

Nombre de super clusters alloués dans D3DXSHPRTCompSuperCluster.

pInputIB [in]

Type : LPVOID

Mémoire tampon d’index brute pour le maillage. Le format dépend de InputIBIs32Bit.

InputIBIs32Bit [in]

Type : BOOL

Si la valeur est TRUE, la mémoire tampon d’index est définie sur 32 bits ; sinon, 16 bits.

NumFaces [in]

Type : UINT

Nombre de visages dans le maillage d’origine (pInputIB est 3 fois cette longueur.)

ppIBData [in, out]

Type : LPD3DXBUFFER*

Mémoire tampon d’index brute qui contiendra les visages fractionnés résultants. Format déterminé par InputIBIs32Bit. Alloué par fonction.

pIBDataLength [in, out]

Type : UINT*

Longueur de ppIBData, affectée dans la fonction.

OutputIBIs32Bit [in, out]

Type : BOOL

Si la valeur est TRUE, alloue un tableau d’entiers non signés ; sinon, alloue un tableau court non signé.

ppFaceRemap [in, out]

Type : LPD3DXBUFFER*

Mappage de chaque visage dans ppIBData aux visages d’origine. La longueur est *pIBDataLength/3.

ppVertData [in, out]

Type : LPD3DXBUFFER*

Nouvelle structure de données de vertex. Taille de pVertDataLength.

pVertDataLength [in, out]

Type : UINT*

Nombre de nouveaux sommets dans le maillage fractionné. Affecté dans la fonction.

pSCClusterList [in, out]

Type : UINT*

Tableau de nombres de longueurs que pSCData indexe dans (champs pClusterIDs*) pour chaque super-cluster, contient des clusters triés par super-cluster.

pSCData [in, out]

Type : D3DXSHPRTSPLITMESHCLUSTERDATA*

Structure par super cluster. Contient des index dans ppIBData, pSCClusterList et ppVertData.

Valeur retournée

Type : HRESULT

Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Spécifications

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

Voir aussi

Fonctions de transfert de radiance précalculées