Функция D3DXComputeTangent
Вычисляет тангенсные векторы для координат текстуры, заданных на этапе текстуры. Предоставляется для поддержки устаревших приложений. Используйте D3DXComputeTangentFrameEx для получения лучших результатов.
Синтаксис
HRESULT D3DXComputeTangent(
_In_ LPD3DXMESH Mesh,
_In_ DWORD TexStageIndex,
_In_ DWORD TangentIndex,
_In_ DWORD BinormIndex,
_In_ DWORD Wrap,
_In_ const DWORD *pAdjacency
);
Параметры
-
Сетка [вход]
-
Тип: LPD3DXMESH
Указатель на интерфейс ID3DXMesh , представляющий сетку ввода.
-
TexStageIndex [in]
-
Тип: DWORD
Индекс, представляющий этап текстуры.
-
TangentIndex [in]
-
Тип: DWORD
Индекс, предоставляющий индекс использования для тангенсных данных. Объявление вершины подразумевает использование; этот индекс изменяет использование с помощью индекса использования. Дополнительные сведения об объявлении вершин см. в разделе Объявление вершин (Direct3D 9).
-
BinormIndex [in]
-
Тип: DWORD
Индекс, предоставляющий индекс использования для бинормальных данных. Объявление вершины подразумевает использование; этот индекс изменяет использование с помощью индекса использования. Дополнительные сведения об объявлении вершин см. в разделе Объявление вершин (Direct3D 9).
-
Перенос [в]
-
Тип: DWORD
Присвойте этому значению значение 0 для отсутствия обтекания или значение 1 для упаковки в направлениях you и V.
-
pAdjacency [in]
-
Тип: const DWORD*
Указатель на массив из трех DWORD на каждое лицо для заполнения смежными индексами лиц. Число байтов в этом массиве должно быть не менее ((3 * GetNumFaces) * sizeof(DWORD)).
Возвращаемое значение
Тип: HRESULT
Если функция выполнена успешно, возвращаемое значение будет S_OK. Если функция завершается сбоем, возвращаемое значение может быть одним из следующих: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.
Комментарии
Если в объявлении вершины сетки указаны поля тангенса или бинормального значения, D3DXComputeTangent обновит любые предоставленные пользователем тангенсы или бинормальные данные. Кроме того, задайте для TangentIndex значение D3DX_DEFAULT , чтобы не обновлять предоставленные пользователем тангенсные данные, или задайте для Параметра BinormIndex значение D3DX_DEFAULT, чтобы не обновлять предоставленные пользователем двоичные данные. Для TexStageIndex нельзя задать значение D3DX_DEFAULT.
D3DXComputeTangent зависит от объявления вершины сетки, содержащего либо бинормальное поле (BinormIndex), поле тангенса (TangentIndex) или и то, и другое. Если они отсутствуют, эта функция завершится ошибкой.
Эта функция просто вызывает D3DXComputeTangentFrameEx со следующими входными параметрами:
D3DXComputeTangentFrameEx( Mesh,
D3DDECLUSAGE_TEXCOORD,
TexStageIndex,
( BinormIndex == D3DX_DEFAULT ) ?
D3DX_DEFAULT : D3DDECLUSAGE_BINORMAL,
// provides backward function compatibility
BinormIndex,
( TangentIndex == D3DX_DEFAULT ) ?
D3DX_DEFAULT : D3DDECLUSAGE_TANGENT,
TangentIndex,
D3DX_DEFAULT, // do not store normals
0,
( Wrap ? D3DXTANGENT_WRAP_UV : 0 )
| D3DXTANGENT_GENERATE_IN_PLACE
| D3DXTANGENT_ORTHOGONALIZE_FROM_U,
pAdjacency,
-1.01f,
-0.01f,
-1.01f,
NULL,
NULL);
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел