Método ID3DXMesh::Optimize

Genera una nueva malla con caras y vértices reordenados para optimizar el rendimiento del dibujo.

Sintaxis

HRESULT Optimize(
  [in]            DWORD        Flags,
  [in]      const DWORD        *pAdjacencyIn,
  [in, out]       DWORD        *pAdjacencyOut,
  [in, out]       DWORD        *pFaceRemap,
  [out]           LPD3DXBUFFER *ppVertexRemap,
  [out]           LPD3DXMESH   *ppOptMesh
);

Parámetros

Marcas [in]

Tipo: DWORD

Especifica el tipo de optimización que se va a realizar. Este parámetro se puede establecer en una combinación de una o varias marcas de D3DXMESHOPT y D3DXMESH (excepto D3DXMESH_32BIT, D3DXMESH_IB_WRITEONLY y D3DXMESH_WRITEONLY).

pAdjacencyIn [in]

Tipo: const DWORD*

Puntero a una matriz de tres DWORD por cara que especifica los tres vecinos para cada cara de la malla de origen. Si el borde no tiene caras adyacentes, el valor es 0xffffffff. Vea la sección Comentarios.

pAdjacencyOut [in, out]

Tipo: DWORD*

Puntero a una matriz de tres DWORD por cara que especifica los tres vecinos para cada cara de la malla optimizada. Si el borde no tiene caras adyacentes, el valor es 0xffffffff.

pFaceRemap [in, out]

Tipo: DWORD*

Matriz de DWORDs, una por cara, que identifica la cara de malla original que corresponde a cada cara de la malla optimizada. Si el valor proporcionado para este argumento es NULL, no se devuelven los datos de reasignación de caras.

ppVertexRemap [out]

Tipo: LPD3DXBUFFER*

Dirección de un puntero a una interfaz ID3DXBuffer , que contiene un DWORD para cada vértice que especifica cómo se asignan los nuevos vértices a los vértices antiguos. Este mapa es útil si necesita modificar los datos externos en función de la nueva asignación de vértices.

ppOptMesh [out]

Tipo: LPD3DXMESH*

Dirección de un puntero a una interfaz ID3DXMesh , que representa la malla optimizada.

Valor devuelto

Tipo: HRESULT

Si el método se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, E_OUTOFMEMORY.

Comentarios

Este método genera una nueva malla. Antes de ejecutar Optimize, una aplicación debe generar un búfer de adyacencia llamando a ID3DXBaseMesh::GenerateAdjacency. El búfer de adyacencia contiene datos de adyacencia, como una lista de bordes y las caras adyacentes entre sí.

Este método es muy similar al método ID3DXBaseMesh::CloneMesh , salvo que puede realizar la optimización al generar el nuevo clon de la malla. La malla de salida hereda todos los parámetros de creación de la malla de entrada.

Requisitos

Requisito Value
Encabezado
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Consulte también

ID3DXMesh

ID3DXMesh::OptimizeInplace