Método ID3DXMesh::OptimizeInplace
Genera una malla con caras y vértices reordenados para optimizar el rendimiento del dibujo. Este método reordena la malla existente.
Sintaxis
HRESULT OptimizeInplace(
[in] DWORD Flags,
[in] const DWORD *pAdjacencyIn,
[out] DWORD *pAdjacencyOut,
[out] DWORD *pFaceRemap,
[out] LPD3DXBUFFER *ppVertexRemap
);
Parámetros
-
Marcas [in]
-
Tipo: DWORD
Combinación de una o varias marcas D3DXMESHOPT , especificando el tipo de optimización que se va a realizar.
-
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.
-
pAdjacencyOut [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. Si el valor proporcionado para este argumento es NULL, no se devuelven datos de adyacencia.
-
pFaceRemap [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 mapa facial.
-
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. Si el valor proporcionado para este argumento es NULL, no se devuelven los datos de mapa de vértices.
Valor devuelto
Tipo: HRESULT
Si el método se realiza 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, D3DXERR_CANNOTATTRSORT, E_OUTOFMEMORY.
Comentarios
Antes de ejecutar ID3DXMesh::OptimizeInplace, 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í.
Nota
Este método producirá un error si la malla comparte su búfer de vértices con otra malla, a menos que la D3DXMESHOPT_IGNOREVERTS esté establecida en Marcas.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también