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 |
|
Libreria |
|
Vedi anche