Funzione D3DXSHPRTCompSplitMeshSC

Usato con risultati compressi della versione del vertice del simulatore di radianza precomputto (PRT). Dopo aver chiamato D3DXSHPRTCompSuperCluster , questa funzione può essere usata per suddividere la mesh in un gruppo di visi/vertici per ogni cluster. Ogni cluster super contiene tutti i visi che contengono qualsiasi vertice classificato in uno dei relativi cluster. Tutti i vertici connessi a questo set di visi sono inclusi anche con la matrice restituita ppVertStatus che indica se il vertice appartiene al cluster super.

Sintassi

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

Parametri

pClusterIDs [in]

Tipo: UINT*

ID cluster NumVertices (estratto da un buffer compresso).

NumVertices [in]

Tipo: UINT

Numero di vertici in mesh originale.

NumCs [in]

Tipo: UINT

Numero di cluster (parametro di input da compressione).

pSClusterIDs [in]

Tipo: UINT*

Matrice di numeri di dimensioni che conterrà ID cluster avanzati.

NumSCs [in]

Tipo: UINT

Numero di cluster super allocati in D3DXSHPRTCompSuperCluster.

pInputIB [in]

Tipo: LPVOID

Buffer di indice non elaborato per mesh. Il formato dipende da InputIBIs32Bit.

InputIBIs32Bit [in]

Tipo: BOOL

Se TRUE, il buffer di indice è impostato su 32 bit; in caso contrario, 16 bit.

NumFaces [in]

Tipo: UINT

Numero di visi nella mesh originale (pInputIB è 3 volte questa lunghezza).

ppIBData [in, out]

Tipo: LPD3DXBUFFER*

Buffer di indice non elaborato che conterrà le facce suddivise risultanti. Formato determinato da InputIBIs32Bit. Allocato dalla funzione.

pIBDataLength [in, out]

Tipo: UINT*

Lunghezza di ppIBData, assegnata nella funzione.

OutputIBIs32Bit [in, out]

Tipo: BOOL

Se TRUE, alloca una matrice integer senza segno; in caso contrario, alloca una matrice breve senza segno.

ppFaceRemap [in, out]

Tipo: LPD3DXBUFFER*

Mapping di ogni viso in ppIBData ai visi originali. La lunghezza è *pIBDataLength/3.

ppVertData [in, out]

Tipo: LPD3DXBUFFER*

Nuova struttura dei dati dei vertici. Dimensioni di pVertDataLength.

pVertDataLength [in, out]

Tipo: UINT*

Numero di nuovi vertici in mesh diviso. Assegnato nella funzione.

pSCClusterList [in, out]

Tipo: UINT*

Matrice di numeri di lunghezza che pSCData indicizza in (campi pClusterIDs*) per ogni supercluster, contiene cluster ordinati per supercluster.

pSCData [in, out]

Tipo: D3DXSHPRTSPLITMESHCLUSTERDATA*

Struttura per cluster super. Contiene indici in ppIBData, pSCClusterList e ppVertData.

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito è D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

Funzioni di trasferimento di radianza precompilate