Função D3DXComputeTangent
Calcula os vetores tangentes para as coordenadas de textura fornecidas no estágio de textura. Fornecido para dar suporte a aplicativos herdados. Use D3DXComputeTangentFrameEx para obter melhores resultados.
Sintaxe
HRESULT D3DXComputeTangent(
_In_ LPD3DXMESH Mesh,
_In_ DWORD TexStageIndex,
_In_ DWORD TangentIndex,
_In_ DWORD BinormIndex,
_In_ DWORD Wrap,
_In_ const DWORD *pAdjacency
);
Parâmetros
-
Malha [in]
-
Tipo: LPD3DXMESH
Ponteiro para uma interface ID3DXMesh que representa a malha de entrada.
-
TexStageIndex [in]
-
Tipo: DWORD
Índice que representa o estágio de textura.
-
TangentIndex [in]
-
Tipo: DWORD
Índice que fornece o índice de uso para os dados tangentes. A declaração de vértice implica o uso; esse índice modifica o uso com o índice de uso. Para obter mais informações sobre uma declaração de vértice, consulte Declaração de Vértice (Direct3D 9).
-
BinormIndex [in]
-
Tipo: DWORD
Índice que fornece o índice de uso para os dados binormal. A declaração de vértice implica o uso; esse índice modifica o uso com o índice de uso. Para obter mais informações sobre uma declaração de vértice, consulte Declaração de Vértice (Direct3D 9).
-
Encapsular [in]
-
Tipo: DWORD
Defina esse valor como 0 para nenhum encapsulamento ou como 1 para encapsular nas direções de você e V.
-
pAdjacency [in]
-
Tipo: const DWORD*
Ponteiro para uma matriz de três DWORDs por rosto a serem preenchidos com índices faciais adjacentes. O número de bytes nessa matriz deve ser pelo menos ((3 * GetNumFaces) * sizeof(DWORD)).
Valor retornado
Tipo: HRESULT
Se a função for bem-sucedida, o valor retornado será S_OK. Se a função falhar, o valor retornado poderá ser um dos seguintes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA E_OUTOFMEMORY.
Comentários
Se a declaração de vértice de malha especificar campos tangentes ou binormal, D3DXComputeTangent atualizará todos os dados tangentes ou binormal fornecidos pelo usuário. Como alternativa, defina TangentIndex como D3DX_DEFAULT para não atualizar os dados tangentes fornecidos pelo usuário ou defina BinormIndex como D3DX_DEFAULT para não atualizar os dados binormal fornecidos pelo usuário. TexStageIndex não pode ser definido como D3DX_DEFAULT.
D3DXComputeTangent depende da declaração de vértice de malha que contém o campo binormal (BinormIndex), o campo tangente (TangentIndex) ou ambos. Se ambos estiverem ausentes, essa função falhará.
Essa função simplesmente chama D3DXComputeTangentFrameEx com os seguintes parâmetros de entrada:
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);
Requisitos
Requisito | Valor |
---|---|
parâmetro |
|
Biblioteca |
|
Confira também