Condividi tramite


Funzione D3DXComputeTangent

Calcola i vettori tangenti per le coordinate della trama indicate nella fase di trama. Fornito per supportare le applicazioni legacy. Usare D3DXComputeTangentFrameEx per ottenere risultati migliori.

Sintassi

HRESULT D3DXComputeTangent(
  _In_       LPD3DXMESH Mesh,
  _In_       DWORD      TexStageIndex,
  _In_       DWORD      TangentIndex,
  _In_       DWORD      BinormIndex,
  _In_       DWORD      Wrap,
  _In_ const DWORD      *pAdjacency
);

Parametri

Mesh [in]

Tipo: LPD3DXMESH

Puntatore a un'interfaccia ID3DXMesh che rappresenta la mesh di input.

TexStageIndex [in]

Tipo: DWORD

Indice che rappresenta la fase della trama.

TangentIndex [in]

Tipo: DWORD

Indice che fornisce l'indice di utilizzo per i dati tangenti. La dichiarazione dei vertici implica l'utilizzo; questo indice modifica l'utilizzo con l'indice di utilizzo. Per altre informazioni su una dichiarazione di vertice, vedere Dichiarazione dei vertici (Direct3D 9).For more information about a vertex declaration, see Vertex Declaration (Direct3D 9).

BinormIndex [in]

Tipo: DWORD

Indice che fornisce l'indice di utilizzo per i dati binormal. La dichiarazione dei vertici implica l'utilizzo; questo indice modifica l'utilizzo con l'indice di utilizzo. Per altre informazioni su una dichiarazione di vertice, vedere Dichiarazione dei vertici (Direct3D 9).For more information about a vertex declaration, see Vertex Declaration (Direct3D 9).

Eseguire il wrapping [in]

Tipo: DWORD

Impostare questo valore su 0 per nessun ritorno a capo oppure su 1 per il wrapping nelle direzioni dell'utente e della V.

pAdjacency [in]

Tipo: const DWORD*

Puntatore a una matrice di tre DWORD per viso da riempire con indici del viso adiacenti. Il numero di byte in questa matrice deve essere almeno ((3 * GetNumFaces) * sizeof(DWORD)).

Valore restituito

Tipo: HRESULT

Se la funzione ha esito positivo, il valore restituito viene S_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Commenti

Se la dichiarazione di vertice mesh specifica campi tangenti o binormal, D3DXComputeTangent aggiornerà eventuali dati tangenti o binormal forniti dall'utente. In alternativa, impostare TangentIndex su D3DX_DEFAULT per non aggiornare i dati tangenti forniti dall'utente o impostare BinormIndex su D3DX_DEFAULT per non aggiornare i dati binormal forniti dall'utente. Impossibile impostare TexStageIndex su D3DX_DEFAULT.

D3DXComputeTangent dipende dalla dichiarazione del vertice mesh contenente il campo binormal (BinormIndex), il campo tangente (TangentIndex) o entrambi. Se entrambi mancano, questa funzione avrà esito negativo.

Questa funzione chiama semplicemente D3DXComputeTangentFrameEx con i parametri di input seguenti:

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);

Requisiti

Requisito Valore
Intestazione
D3DX9Mesh.h
Libreria
D3dx9.lib

Vedi anche

Funzioni mesh