Функция D3DXUVAtlasCreate
Создание УФ-атласа для сетки.
Синтаксис
HRESULT D3DXUVAtlasCreate(
_In_ LPD3DXMESH pMesh,
_In_ UINT dwMaxChartNumber,
_In_ FLOAT fMaxStretch,
_In_ UINT dwWidth,
_In_ UINT dwHeight,
_In_ FLOAT fGutter,
_In_ DWORD dwTextureIndex,
_In_ const DWORD *pdwAdjacency,
const DWORD *pdwFalseEdges,
_In_ FLOAT *pfIMTArray,
_In_ LPD3DXUVATLASCB pCallback,
_In_ FLOAT fCallbackFrequency,
_In_ LPVOID pUserContext,
_In_ DWORD dwOptions,
_In_ LPD3DXMESH *ppMeshOut,
_Out_ LPD3DXBUFFER *ppFacePartitioning,
_Out_ LPD3DXBUFFER *ppVertexRemapArray,
_Out_ FLOAT *pfMaxStretchOut,
_Out_ UINT *pdwNumChartsOut
);
Параметры
-
pMesh [in]
-
Тип: LPD3DXMESH
Указатель на входную сетку (см. ID3DXMesh), которая содержит геометрию объекта для вычисления атласа. По крайней мере сетка должна содержать данные о положении и двухd-координаты текстуры.
-
dwMaxChartNumber [in]
-
Тип: UINT
Максимальное количество диаграмм для секционирования сетки. См. примечания о режимах секционирования. Используйте 0, чтобы сообщить D3DX, что атлас должен быть параметризован на основе растяжения.
-
fMaxStretch [in]
-
Тип: FLOAT
Допустимый объем растяжения. 0 означает, что растяжение не допускается, 1 означает, что можно использовать любое количество растяжения.
-
dwWidth [in]
-
Тип: UINT
Ширина текстуры.
-
dwHeight [in]
-
Тип: UINT
Высота текстуры.
-
fGutter [in]
-
Тип: FLOAT
Минимальное расстояние (в текселях) между двумя диаграммами в атласе. Желоб всегда масштабируется на ширину; Таким образом, если для текстуры 512x512 используется желоб 2,5, то минимальное расстояние между двумя диаграммами составляет 2,5 / 512,0 текселей.
-
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).
-
ppFacePartitioning [out]
-
Тип: LPD3DXBUFFER*
Указатель на массив окончательных данных секционирования лиц. Каждый элемент содержит по одному DWORD на лицо (см. ID3DXBuffer).
-
ppVertexRemapArray [out]
-
Тип: LPD3DXBUFFER*
Указатель на массив переопределенных вершин. Каждый элемент массива идентифицирует исходную вершину, из которых была получена каждая окончательная вершина (если вершина была разделена во время переназначения). Каждый элемент массива содержит по одному DWORD на каждую вершину.
-
pfMaxStretchOut [out]
-
Тип: FLOAT*
Указатель на максимальное значение растяжения, созданное алгоритмом atlas. Диапазон находится в диапазоне от 0,0 до 1,0.
-
pdwNumChartsOut [out]
-
Тип: UINT*
Указатель на количество диаграмм, созданных алгоритмом атласа. Если значение dwMaxChartNumber слишком низкое, этот параметр возвращает минимальное количество диаграмм, необходимых для создания атласа.
Возвращаемое значение
Тип: HRESULT
Если функция выполнена успешно, возвращаемое значение будет D3D_OK; В противном случае значение равно D3DERR_INVALIDCALL.
Комментарии
D3DXUVAtlasCreate может секционировать геометрию сетки двумя способами:
- На основе количества диаграмм
- На основе максимально допустимого значения растяжения. Если максимально допустимое значение растяжения равно 0, каждый треугольник, скорее всего, будет находиться в отдельной диаграмме.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел