Función D3DXSHPRTCompSplitMeshSC

Se usa con resultados comprimidos de la versión de vértice del simulador de transferencia de radiancia precalculada (PRT). Después de llamar a D3DXSHPRTCompSuperCluster , esta función se puede usar para dividir la malla en un grupo de caras o vértices por super clúster. Cada super clúster contiene todas las caras que contienen cualquier vértice clasificado en uno de sus clústeres. Todos los vértices conectados a este conjunto de caras también se incluyen con la matriz devuelta ppVertStatus que indica si el vértice pertenece o no al super clúster.

Sintaxis

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

Parámetros

pClusterIDs [in]

Tipo: UINT*

Identificadores de clúster de NumVertices (extraídos de un búfer comprimido).

NumVertices [in]

Tipo: UINT

Número de vértices en malla original.

NumCs [in]

Tipo: UINT

Número de clústeres (parámetro de entrada para compresión).

pSClusterIDs [in]

Tipo: UINT*

Matriz de NumCs de tamaño que contendrá identificadores de super clúster.

NumSC [in]

Tipo: UINT

Número de super clústeres asignados en D3DXSHPRTCompSuperCluster.

pInputIB [in]

Tipo: LPVOID

Búfer de índice sin formato para malla. El formato depende de InputIBIs32Bit.

InputIBIs32Bit [in]

Tipo: BOOL

Si es TRUE, el búfer de índice se establece en 32 bits; de lo contrario, 16 bits.

NumFaces [in]

Tipo: UINT

Número de caras de la malla original (pInputIB es 3 veces esta longitud).

ppIBData [in, out]

Tipo: LPD3DXBUFFER*

Búfer de índice sin formato que contendrá las caras divididas resultantes. Formato determinado por InputIBIs32Bit. Asignado por función.

pIBDataLength [in, out]

Tipo: UINT*

Longitud de ppIBData, asignada en la función.

OutputIBIs32Bit [in, out]

Tipo: BOOL

Si es TRUE, asigna una matriz de enteros sin signo; de lo contrario, asigna una matriz corta sin signo.

ppFaceRemap [in, out]

Tipo: LPD3DXBUFFER*

Asignación de cada cara en ppIBData a caras originales. La longitud es *pIBDataLength/3.

ppVertData [in, out]

Tipo: LPD3DXBUFFER*

Nueva estructura de datos de vértices. Tamaño de pVertDataLength.

pVertDataLength [in, out]

Tipo: UINT*

Número de vértices nuevos en malla dividida. Asignado en la función .

pSCClusterList [in, out]

Tipo: UINT*

Matriz de NumCs de longitud que pSCData indexa en (campos pClusterIDs*) para cada supercluster, contiene clústeres ordenados por supercluster.

pSCData [in, out]

Tipo: D3DXSHPRTSPLITMESHCLUSTERDATA*

Estructura por super clúster. Contiene índices en ppIBData, pSCClusterList y ppVertData.

Valor devuelto

Tipo: HRESULT

Si la función se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

Funciones de transferencia radiance precaladas