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


Функция D3DXUVAtlasPartition

Создание УФ-атласа для сетки.

Синтаксис

HRESULT D3DXUVAtlasPartition(
  _In_        LPD3DXMESH      pMesh,
  _In_        UINT            dwMaxChartNumber,
  _In_        FLOAT           fMaxStretch,
  _In_        DWORD           dwTextureIndex,
  _In_  const DWORD           *pdwAdjacency,
        const DWORD           *pdwFalseEdges,
  _In_        FLOAT           *pfIMTArray,
  _In_        LPD3DXUVATLASCB pCallback,
  _In_        FLOAT           fCallbackFrequency,
  _In_        LPVOID          pUserContent,
  _In_        DWORD           dwOptions,
  _In_        LPD3DXMESH      *ppMeshOut,
  _Out_       LPD3DXBUFFER    pFacePartitioning,
  _Out_       LPD3DXBUFFER    *ppVertexRemapArray,
              LPD3DXBUFFER    *ppPartitionResultAdjacency,
  _Out_       FLOAT           *pfMaxStretchOut,
  _Out_       UINT            *pdwNumChartsOut
);

Параметры

pMesh [in]

Тип: LPD3DXMESH

Указатель на входную сетку (см. ID3DXMesh), содержащую геометрию объекта для вычисления атласа. По крайней мере сетка должна содержать данные о положении и двухd-координаты текстуры.

dwMaxChartNumber [in]

Тип: UINT

Максимальное количество диаграмм для секционирования сетки. См. примечания о режимах секционирования. Используйте 0, чтобы сообщить D3DX, что атлас должен быть параметризован на основе растяжения.

fMaxStretch [in]

Тип: FLOAT

Допустимый объем растяжения. 0 означает, что растяжение не допускается, 1 означает, что можно использовать любое количество растяжения.

dwTextureIndex [in]

Тип: DWORD

Отсчитываемый от нуля индекс координат текстуры, определяющий набор координат текстуры для использования.

pdwAdjacency [in]

Тип: const DWORD*

Указатель на массив данных смежности с 3 DWORD на каждое лицо, указывающее, какие треугольники примыкают друг к другу (см. ID3DXBaseMesh::GenerateAdjacency).

pdwFalseEdges

Тип: const DWORD*

Массив с 3 DWORDS на лицо. Каждое лицо указывает, является ли ребро false или нет. Не ложное ребро обозначается -1, а ложное ребро — любым другим значением. Это позволяет параметризация сетки четырехугольника, где ребра вниз посередине каждого квадроцикла не будут вырезаны.

pfIMTArray [in]

Тип: FLOAT*

Указатель на массив интегрированных тензоров метрик, описывающий растяжение треугольника (см. статью IntegratedMetricTensor).

pCallback [in]

Тип: LPD3DXUVATLASCB

Указатель на функцию обратного вызова (см. LPD3DXUVATLASCB), которая полезна для мониторинга хода выполнения.

fCallbackFrequency [in]

Тип: FLOAT

Укажите, как часто D3DX будет вызывать обратный вызов; Разумное значение по умолчанию — 0,0001f.

pUserContent [in]

Тип: LPVOID

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

dwOptions [in]

Тип: DWORD

Укажите качество диаграмм, созданных путем объединения одного или нескольких флагов D3DXUVATLAS .

ppMeshOut [in]

Тип: LPD3DXMESH*

Указатель на созданную сетку с атласом (см. ID3DXMesh).

pFacePartitioning [out]

Тип: LPD3DXBUFFER

Указатель на массив окончательных данных секционирования лиц. Каждый элемент содержит по одному DWORD на лицо (см. ID3DXBuffer).

ppVertexRemapArray [out]

Тип: LPD3DXBUFFER*

Указатель на массив переопределенных вершин. Каждый элемент массива определяет исходную вершину каждой конечной вершины (если вершина была разделена во время переназначения). Каждый элемент массива содержит по одному DWORD на каждую вершину.

ppPartitionResultAdjacency

Тип: LPD3DXBUFFER*

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

pfMaxStretchOut [out]

Тип: FLOAT*

Указатель на максимальное значение растяжения, созданное алгоритмом atlas. Диапазон находится в диапазоне от 0,0 до 1,0.

pdwNumChartsOut [out]

Тип: UINT*

Указатель на количество диаграмм, созданных алгоритмом атласа. Если значение dwMaxChartNumber слишком низкое, этот параметр возвращает минимальное количество диаграмм, необходимых для создания атласа.

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

Тип: HRESULT

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

Комментарии

D3DXUVAtlasPartition аналогичен D3DXUVAtlasCreate, за исключением того, что D3DXUVAtlasPartition не выполняет последний этап упаковки.

Требования

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

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

Функции UVAtlas

Инструмент Command-Line UV Atlas (uvatlas.exe)