D3DXUVAtlasPartition 函数
为网格创建 UV 图集。
语法
HRESULT D3DXUVAtlasPartition(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContent,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER pFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
LPD3DXBUFFER *ppPartitionResultAdjacency,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
参数
-
pMesh [in]
-
类型: LPD3DXMESH
指向输入网格的指针 (请参阅 ID3DXMesh) ,其中包含用于计算地图集的对象几何图形。 网格必须至少包含位置数据和 2D 纹理坐标。
-
dwMaxChartNumber [in]
-
类型: UINT
要将网格分区到的最大图表数。 请参阅有关分区模式的备注。 使用 0 告知 D3DX 应根据拉伸参数化地图集。
-
fMaxStretch [in]
-
类型: FLOAT
允许的拉伸量。 0 表示不允许拉伸,1 表示可以使用任意数量的拉伸。
-
dwTextureIndex [in]
-
类型: DWORD
从零开始的纹理坐标索引,用于标识要使用的纹理坐标集。
-
pdwAdjacency [in]
-
类型: const DWORD*
指向每个面有 3 个 DWORD 的相邻数据数组的指针,指示哪些三角形彼此相邻 (请参阅 ID3DXBaseMesh::GenerateAdjacency) 。
-
pdwFalseEdges
-
类型: const DWORD*
每个面有 3 个 DWORDS 的数组。 每个人脸指示边缘是否为 false。 非假边由 -1 指示,假边由任何其他值指示。 这样就可以对四边形网格进行参数化,在该网格中,不会剪切每个象限中间的边缘。
-
pfIMTArray [in]
-
类型: FLOAT*
指向集成指标张量数组的指针,该数组描述如何拉伸三角形 (请参阅 IntegratedMetricTensor) 。
-
pCallback [in]
-
类型: LPD3DXUVATLASCB
指向回调函数的指针 (请参阅对监视进度有用的 LPD3DXUVATLASCB) 。
-
fCallbackFrequency [in]
-
类型: FLOAT
指定 D3DX 调用回调的频率;合理的默认值为 0.0001f。
-
pUserContent [in]
-
类型: LPVOID
指向传递给回调函数的用户定义值的指针;通常由应用程序用来传递指向为回调函数提供上下文信息的数据结构的指针。
-
dwOptions [in]
-
类型: DWORD
指定通过组合一个或多个 D3DXUVATLAS 标志生成的图表的质量。
-
ppMeshOut [in]
-
类型: LPD3DXMESH*
指向使用 atlas (创建的网格的指针,请参阅 ID3DXMesh) 。
-
pFacePartitioning [out]
-
类型: LPD3DXBUFFER
指向最终人脸分区数据数组的指针。 每个元素包含一个 DWORD, (请参阅 ID3DXBuffer) 。
-
ppVertexRemapArray [out]
-
类型: LPD3DXBUFFER*
指向重新映射顶点数组的指针。 如果顶点在重新映射) 期间被拆分,则每个数组元素标识来自 (每个最终顶点的原始顶点。 每个数组元素每个顶点包含一个 DWORD。
-
ppPartitionResultAdjacency
-
类型: LPD3DXBUFFER*
指向 ID3DXBuffer 接口的指针的地址。 此缓冲区将包含每个面三个 DWORD 的数组,该数组为输出网格中的每个人脸指定三个邻居。 此参数不得为 NULL,因为对 D3DXUVAtlasPack () 的后续调用需要它。
-
pfMaxStretchOut [out]
-
类型: FLOAT*
指向 atlas 算法生成的最大拉伸值的指针。 范围介于 0.0 和 1.0 之间。
-
pdwNumChartsOut [out]
-
类型: UINT*
指向 atlas 算法创建的图表数的指针。 如果 dwMaxChartNumber 太低,此参数将返回创建地图集所需的最小图表数。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK;否则,该值为D3DERR_INVALIDCALL。
备注
D3DXUVAtlasPartition 类似于 D3DXUVAtlasCreate,只不过 D3DXUVAtlasPartition 不执行最终打包步骤。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅