Метод ID3DXMesh::Optimize
Создает новую сетку с переупорядоченными гранями и вершинами для оптимизации производительности рисования.
Синтаксис
HRESULT Optimize(
[in] DWORD Flags,
[in] const DWORD *pAdjacencyIn,
[in, out] DWORD *pAdjacencyOut,
[in, out] DWORD *pFaceRemap,
[out] LPD3DXBUFFER *ppVertexRemap,
[out] LPD3DXMESH *ppOptMesh
);
Параметры
-
Флаги [in]
-
Тип: DWORD
Указывает тип выполняемой оптимизации. Для этого параметра можно задать сочетание одного или нескольких флагов из D3DXMESHOPT и D3DXMESH (кроме D3DXMESH_32BIT, D3DXMESH_IB_WRITEONLY и D3DXMESH_WRITEONLY).
-
pAdjacencyIn [in]
-
Тип: const DWORD*
Указатель на массив из трех DWORD на лицо, который указывает три соседя для каждого лица в исходной сетке. Если ребро не имеет смежных граней, значение будет 0xffffffff. См. заметки.
-
pAdjacencyOut [in, out]
-
Тип: DWORD*
Указатель на массив из трех DWORD на лицо, который указывает три соседя для каждого лица в оптимизированной сетке. Если ребро не имеет смежных граней, значение будет 0xffffffff.
-
pFaceRemap [in, out]
-
Тип: DWORD*
Массив DWORD, по одному на лицо, который идентифицирует исходную грань сетки, соответствующую каждой грани в оптимизированной сетке. Если для этого аргумента задано значение NULL, данные о переназначение лиц не возвращаются.
-
ppVertexRemap [out]
-
Тип: LPD3DXBUFFER*
Адрес указателя на интерфейс ID3DXBuffer , содержащий DWORD для каждой вершины, указывающий, как новые вершины сопоставляются со старыми вершинами. Это повторное сопоставление полезно, если необходимо изменить внешние данные на основе нового сопоставления вершин.
-
ppOptMesh [out]
-
Тип: LPD3DXMESH*
Адрес указателя на интерфейс ID3DXMesh , представляющий оптимизированную сетку.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK. В случае сбоя метода возвращается одно из следующих значений: D3DERR_INVALIDCALL E_OUTOFMEMORY.
Комментарии
Этот метод создает новую сетку. Перед запуском Optimize приложение должно создать буфер смежности, вызвав ID3DXBaseMesh::GenerateAdjacency. Буфер смежности содержит данные смежности, такие как список ребер и лиц, расположенных рядом друг с другом.
Этот метод очень похож на метод ID3DXBaseMesh::CloneMesh , за исключением того, что он может выполнять оптимизацию при создании нового клона сетки. Выходная сетка наследует все параметры создания входной сетки.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел