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 群集 ID。)
-
NumVertices [in]
-
类型: UINT
原始网格中的顶点数。
-
NumCs [in]
-
类型: UINT
将输入参数 (compression.)
-
pSClusterIDs [in]
-
类型: UINT*
将包含超级群集 ID 的大小 NumC 的数组。
-
NumSC [in]
-
类型: UINT
在 D3DXSHPRTCompSuperCluster 中分配的超级群集数。
-
pInputIB [in]
-
类型: LPVOID
网格的原始索引缓冲区。 格式取决于 InputIBIs32Bit。
-
InputIBIs32Bit [in]
-
类型: BOOL
如果 为 TRUE,则索引缓冲区设置为 32 位;否则为 16 位。
-
NumFaces [in]
-
类型: UINT
原始网格 (pInputIB 中的人脸数是此长度的 3 倍。)
-
ppIBData [in, out]
-
类型: LPD3DXBUFFER*
将包含生成的拆分面的原始索引缓冲区。 格式由 InputIBIs32Bit 确定。 按函数分配。
-
pIBDataLength [in, out]
-
类型: UINT*
在函数中分配的 ppIBData 的长度。
-
OutputIBIs32Bit [in, out]
-
类型: BOOL
如果 为 TRUE,则分配无符号整数数组;否则,分配无符号短数组。
-
ppFaceRemap [in, out]
-
类型: LPD3DXBUFFER*
将 ppIBData 中的每个人脸映射到原始人脸。 长度为 *pIBDataLength/3。
-
ppVertData [in, out]
-
类型: LPD3DXBUFFER*
新的顶点数据结构。 pVertDataLength 的大小。
-
pVertDataLength [in, out]
-
类型: UINT*
拆分网格中的新顶点数。 在 函数中分配。
-
pSCClusterList [in, out]
-
类型: UINT*
pSCData 为每个超群集) (pClusterIDs* 字段的长度 NumC 数组包含按超级群集排序的群集。
-
pSCData [in, out]
-
类型: D3DXSHPRTSPLITMESHCLUSTERDATA*
每个超级群集的结构。 包含 ppIBData、 pSCClusterList 和 ppVertData 中的索引。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA E_OUTOFMEMORY。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅