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