ID3DX10Mesh::Optimize 方法

生成具有重新排序的人脸和顶点的新网格,以优化绘制性能。

语法

HRESULT Optimize(
  [in]  UINT        Flags,
  [in]  UINT        *pFaceRemap,
  [out] LPD3D10BLOB *ppVertexRemap
);

参数

Flags [in]

类型: UINT

指定要执行的优化类型。 此参数可以设置为 D3DXMESHOPT 和 D3DXMESH ((D3DXMESH_32BIT、D3DXMESH_IB_WRITEONLY和D3DXMESH_WRITEONLY) 除外)的一个或多个标志的组合。

pFaceRemap [in]

类型: UINT*

一个 UINT 数组,每个人脸一个,用于标识与优化网格中的每个人脸对应的原始网格人脸。 如果为此参数提供的值为 NULL,则不返回人脸重新映射数据。

ppVertexRemap [out]

类型: LPD3D10BLOB*

指向 ID3D10Blob 接口的指针的地址,该接口包含每个顶点的 DWORD,该顶点指定新顶点如何映射到旧顶点。 如果需要根据新的顶点映射更改外部数据,此重新映射非常有用。

返回值

类型: HRESULT

返回值是 Direct3D 10 返回代码中列出的值之一。

备注

此方法生成新的网格。 在运行 Optimize 之前,应用程序必须通过调用 ID3DX10Mesh::GenerateAdjacencyAndPointReps 来生成相邻缓冲区。 相邻缓冲区包含相邻数据,例如边缘列表和彼此相邻的面。

此方法与 ID3DX10Mesh::CloneMesh 方法非常相似,不同之处在于它可以在生成网格的新克隆时执行优化。 输出网格继承输入网格的所有创建参数。

要求

要求
标头
D3DX10.h

D3DX10.lib

另请参阅

ID3DX10Mesh

D3DX 接口