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


Функция D3DXSimplifyMesh

Создает упрощенную сетку, используя предоставленные весовые коэффициенты, максимально приближенные к заданному значению MinValue.

Синтаксис

HRESULT D3DXSimplifyMesh(
  _In_        LPD3DXMESH           pMesh,
  _In_  const DWORD                *pAdjacency,
  _In_  const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
  _In_  const FLOAT                *pVertexWeights,
  _In_        DWORD                MinValue,
  _In_        DWORD                Options,
  _Out_       LPD3DXMESH           *ppMesh
);

Параметры

pMesh [in]

Тип: LPD3DXMESH

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

pAdjacency [in]

Тип: const DWORD*

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

pVertexAttributeWeights [in]

Тип: const D3DXATTRIBUTEWEIGHTS*

Указатель на структуру D3DXATTRIBUTEWEIGHTS , содержащую вес каждого компонента вершины. Если для этого параметра задано значение NULL, используется структура по умолчанию. См. заметки.

pVertexWeights [in]

Тип: const FLOAT*

Указатель на массив весов вершин. Если для этого параметра задано значение NULL, для всех весов вершин устанавливается значение 1,0.

MinValue [in]

Тип: DWORD

Количество вершин или граней в зависимости от флага, заданного в параметре Options , с помощью которого можно упростить исходную сетку.

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

Тип: DWORD

Задает параметры упрощения для сетки. Можно задать один из флагов в D3DXMESHSIMP .

ppMesh [out]

Тип: LPD3DXMESH*

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

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

Тип: HRESULT

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

Комментарии

Эта функция создает сетку с вершинами или гранями MinValue .

Если процесс упрощения не может сократить сетку до MinValue, вызов по-прежнему будет выполнен успешно, так как MinValue является требуемым минимумом, а не абсолютным минимумом.

Если pVertexAttributeWeights имеет значение NULL, следующие значения присваиваются структуре D3DXATTRIBUTEWEIGHTS по умолчанию.

D3DXATTRIBUTEWEIGHTS AttributeWeights;
    
AttributeWeights.Position  = 1.0;
AttributeWeights.Boundary =  1.0;
AttributeWeights.Normal   =  1.0;
AttributeWeights.Diffuse  =  0.0;
AttributeWeights.Specular =  0.0;
AttributeWeights.Tex[8]   =  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};

Эту структуру по умолчанию следует использовать большинству приложений, так как она учитывает только геометрическую и нормальную корректировку. Другие поля элементов необходимо изменить только в особых случаях.

Требования

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

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

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