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 |
|
Biblioteca |
|
Consulte también