Поделиться через


Функция D3DXSplitMesh

Разделяет сетку на сетки меньше указанного размера.

Синтаксис

void D3DXSplitMesh(
  _In_        LPD3DXMESH   pMeshIn,
  _In_  const DWORD        *pAdjacencyIn,
  _In_  const DWORD        MaxSize,
  _In_  const DWORD        Options,
  _Out_       DWORD        *pMeshesOut,
  _Out_       LPD3DXBUFFER *ppMeshArrayOut,
  _Out_       LPD3DXBUFFER *ppAdjacencyArrayOut,
  _Out_       LPD3DXBUFFER *ppFaceRemapArrayOut,
  _Out_       LPD3DXBUFFER *ppVertRemapArrayOut
);

Параметры

pMeshIn [in]

Тип: LPD3DXMESH

Указатель на интерфейс ID3DXMesh , представляющий исходную сетку.

pAdjacencyIn [in]

Тип: const DWORD*

Указатель на массив из трех DWORD на каждое лицо, который указывает три соседя для каждого лица в сетке, которую необходимо упростить.

MaxSize [in]

Тип: const DWORD

Максимальное число вершин в результирующей сетке.

Параметры [в]

Тип: const DWORD

Флаги параметров для новых сеток.

pMeshesOut [out]

Тип: DWORD*

Количество возвращенных сеток.

ppMeshArrayOut [out]

Тип: LPD3DXBUFFER*

Буфер, содержащий массив интерфейсов ID3DXMesh для новых сеток. Для исходной сетки, разделенной на n сеток, ppMeshArrayOut представляет собой массив n указателей ID3DXMesh .

ppAdjacencyArrayOut [out]

Тип: LPD3DXBUFFER*

Буфер, содержащий массив массивов смежности (DWORD) для новых сеток. См . раздел ID3DXBuffer. Этот параметр является необязательным.

ppFaceRemapArrayOut [out]

Тип: LPD3DXBUFFER*

Буфер, содержащий массив массивов переназначения лиц (DWORD) для новых сеток. См . раздел ID3DXBuffer. Этот параметр является необязательным.

ppVertRemapArrayOut [out]

Тип: LPD3DXBUFFER*

Буфер, содержащий массив вершин, переназначает массивы для новых сеток. См . раздел ID3DXBuffer. Этот параметр является необязательным.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет D3D_OK. Если функция завершается ошибкой, возвращаемое значение может быть одним из следующих значений: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.

Комментарии

Обычно эта функция используется для разделения сетки с 32-разрядными индексами (более 65535 вершин) на несколько сеток, каждая из которых имеет 16-разрядные индексы.

Массивы смежности, переназначение вершин и переназначение лиц являются массивами DWORD, где каждый массив содержит n указателей DWORD, за которыми следуют данные DWORD, на которые ссылаются указатели. Например, чтобы получить сведения о переназначение лиц для лица 3 в сетке 2, можно использовать следующий код, предполагая, что данные повторного сопоставления лиц были возвращены в переменной с именем ppFaceRemapArrayOut.

   
const DWORD **face_remaps = 
    static_cast<DWORD **>(ppFaceRemapArrayOut->GetBufferPointer());
const DWORD remap = face_remaps[2][3];

Требования

Требование Значение
Заголовок
D3DX9Mesh.h
Библиотека
D3dx9.lib

См. также раздел

Функции сетки