Поделиться через


Функция 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.

Требования

Требование Значение
Заголовок
D3DX9Mesh.h
Библиотека
D3dx9.lib

См. также раздел

Предварительно вычисляемые функции передачи radiance