Функция D3DXSHPRTCompSplitMeshSC
Используется со сжатыми результатами версии вершины предварительно вычисляемого симулятора передачи сияния (PRT). После вызова D3DXSHPRTCompSuperCluster эту функцию можно использовать для разделения сетки на группу лиц и вершин на суперкластер. Каждый суперклассет содержит все грани, содержащие любые вершины, классифицированные в одном из кластеров. Все вершины, подключенные к этому набору граней, также включаются в возвращаемый массив ppVertStatus, указывающий, принадлежит ли вершина супер-кластеру.
Синтаксис
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
);
Параметры
-
pClusterIDs [in]
-
Тип: UINT*
Идентификаторы кластера NumVertices (извлеченные из сжатого буфера).
-
NumVertices [in]
-
Тип: UINT
Число вершин в исходной сетке.
-
NumCs [in]
-
Тип: UINT
Число кластеров (входной параметр для сжатия).
-
pSClusterIDs [in]
-
Тип: UINT*
Массив numCs размера, который будет содержать идентификаторы суперклатера.
-
NumSC [in]
-
Тип: UINT
Количество суперкластеров, выделенных в D3DXSHPRTCompSuperCluster.
-
pInputIB [in]
-
Тип: LPVOID
Необработанный буфер индекса для сетки. Формат зависит от InputIBIs32Bit.
-
InputIBIs32Bit [in]
-
Тип: BOOL
Если задано значение TRUE, для буфера индекса задано значение 32 бита; в противном случае — 16 бит.
-
NumFaces [in]
-
Тип: UINT
Количество лиц в исходной сетке (длина pInputIB в 3 раза больше).
-
ppIBData [вход, выход]
-
Тип: LPD3DXBUFFER*
Буфер необработанного индекса, который будет содержать результирующее разделение лиц. Формат определяется inputIBIs32Bit. Выделяется по функции.
-
pIBDataLength [вход, выход]
-
Тип: UINT*
Длина ppIBData, назначенная в функции.
-
OutputIBIs32Bit [in, out]
-
Тип: BOOL
При значении TRUE выделяет массив целых чисел без знака; в противном случае выделяет неподписанный короткий массив.
-
ppFaceRemap [in, out]
-
Тип: LPD3DXBUFFER*
Сопоставление каждого лица в ppIBData с исходными лицами. Длина : *pIBDataLength/3.
-
ppVertData [in, out]
-
Тип: LPD3DXBUFFER*
Новая структура данных вершин. Размер pVertDataLength.
-
pVertDataLength [in, out]
-
Тип: UINT*
Число новых вершин в разделенной сетке. Назначается в функции.
-
pSCClusterList [вход, выход]
-
Тип: UINT*
Массив numCs длины, индексируемый pSCData в (поля pClusterIDs*) для каждого суперкластера, содержит кластеры, отсортированные по суперкластеру.
-
pSCData [вход, выход]
-
Тип: D3DXSHPRTSPLITMESHCLUSTERDATA*
Структура на суперкластик. Содержит индексы в ppIBData, pSCClusterList и ppVertData.
Возвращаемое значение
Тип: HRESULT
Если функция выполняется успешно, возвращаемое значение будет D3D_OK. Если функция завершается сбоем, возвращаемое значение может быть одним из следующих: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел