D3DXUVAtlasCreate 函数
为网格创建 UV 图集。
语法
HRESULT D3DXUVAtlasCreate(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ UINT dwWidth,
_In_ UINT dwHeight,
_In_ FLOAT fGutter,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContext,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER *ppFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
parameters
-
pMesh [in]
-
类型: LPD3DXMESH
指向输入网格的指针 (请参阅 ID3DXMesh) ,其中包含用于计算地图集的对象几何图形。 网格必须至少包含位置数据和 2D 纹理坐标。
-
dwMaxChartNumber [in]
-
类型: UINT
要对网格进行分区的最大图表数。 请参阅有关分区模式的备注。 使用 0 告知 D3DX 应基于拉伸参数化地图集。
-
fMaxStretch [in]
-
类型: FLOAT
允许的拉伸量。 0 表示不允许拉伸,1 表示可以使用任意数量的拉伸。
-
dwWidth [in]
-
类型: UINT
纹理宽度。
-
dwHeight [in]
-
类型: UINT
纹理高度。
-
fGutter [in]
-
类型: FLOAT
图集上两个图表之间的最小距离(以纹素为单位)。 排水沟始终按宽度缩放;因此,如果在 512x512 纹理上使用 2.5 的装订线,则两个图表之间的最小距离为 2.5 /512.0 纹素。
-
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) 。
-
ppFacePartitioning [out]
-
类型: LPD3DXBUFFER*
指向最终人脸分区数据的数组的指针。 每个元素包含一个 DWORD, (请参阅 ID3DXBuffer) 。
-
ppVertexRemapArray [out]
-
类型: LPD3DXBUFFER*
指向重新映射顶点数组的指针。 如果顶点在重新映射) 期间拆分,则每个数组元素标识每个最终顶点来自 (的原始顶点。 每个数组元素每个顶点包含一个 DWORD。
-
pfMaxStretchOut [out]
-
类型: FLOAT*
指向 atlas 算法生成的最大拉伸值的指针。 范围介于 0.0 和 1.0 之间。
-
pdwNumChartsOut [out]
-
类型: UINT*
指向 atlas 算法创建的图表数的指针。 如果 dwMaxChartNumber 太低,此参数将返回创建图集所需的最小图表数。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK;否则,该值为 D3DERR_INVALIDCALL。
备注
D3DXUVAtlasCreate 可以通过两种方式对网格几何图形进行分区:
- 基于图表数量
- 基于允许的最大拉伸。 如果允许的最大拉伸为 0,则每个三角形可能位于其自己的图表中。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
请参阅