D3DXSimplifyMesh 函数
使用提供的尽可能接近给定 MinValue 的权重生成简化的网格。
语法
HRESULT D3DXSimplifyMesh(
_In_ LPD3DXMESH pMesh,
_In_ const DWORD *pAdjacency,
_In_ const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
_In_ const FLOAT *pVertexWeights,
_In_ DWORD MinValue,
_In_ DWORD Options,
_Out_ LPD3DXMESH *ppMesh
);
parameters
-
pMesh [in]
-
类型: LPD3DXMESH
指向表示源网格的 ID3DXMesh 接口的指针。
-
pAdjacency [in]
-
类型: const DWORD*
指向每个人脸三个 DWORD 数组的指针,该数组指定要简化的网格中每个人脸的三个邻居。
-
pVertexAttributeWeights [in]
-
类型: const D3DXATTRIBUTEWEIGHTS*
指向 D3DXATTRIBUTEWEIGHTS 结构的指针,其中包含每个顶点组件的权重。 如果此参数设置为 NULL,则使用默认结构。 请参阅“备注”。
-
pVertexWeights [in]
-
类型: const FLOAT*
指向顶点权重数组的指针。 如果此参数设置为 NULL,则所有顶点权重都设置为 1.0。
-
MinValue [in]
-
类型: DWORD
顶点或人脸的数量,具体取决于 Options 参数中设置的标志,用于简化源网格。
-
选项 [in]
-
类型: DWORD
指定网格的简化选项。 可以设置 D3DXMESHSIMP 中的标志之一。
-
ppMesh [out]
-
类型: LPD3DXMESH*
指向 ID3DXMesh 接口的指针的地址,表示返回的简化网格。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是下列值之一:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY。
备注
此函数生成具有 MinValue 顶点或面的网格。
如果简化过程无法将网格减少到 MinValue,则调用仍然成功,因为 MinValue 是所需的最小值,而不是绝对最小值。
如果 pVertexAttributeWeights 设置为 NULL,则将以下值分配给默认 的 D3DXATTRIBUTEWEIGHTS 结构。
D3DXATTRIBUTEWEIGHTS AttributeWeights;
AttributeWeights.Position = 1.0;
AttributeWeights.Boundary = 1.0;
AttributeWeights.Normal = 1.0;
AttributeWeights.Diffuse = 0.0;
AttributeWeights.Specular = 0.0;
AttributeWeights.Tex[8] = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
此默认结构是大多数应用程序应使用的结构,因为它只考虑几何和正常调整。 只有在特殊情况下,才需要修改其他成员字段。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
请参阅