Compartilhar via


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
D3DX9Mesh.h
Biblioteca
D3dx9.lib

Confira também

Funções de malha