Función D3DXComputeTangent
Calcula los vectores tangentes para las coordenadas de textura proporcionadas en la fase de textura. Se proporciona para admitir aplicaciones heredadas. Use D3DXComputeTangentFrameEx para obtener mejores resultados.
Sintaxis
HRESULT D3DXComputeTangent(
_In_ LPD3DXMESH Mesh,
_In_ DWORD TexStageIndex,
_In_ DWORD TangentIndex,
_In_ DWORD BinormIndex,
_In_ DWORD Wrap,
_In_ const DWORD *pAdjacency
);
Parámetros
-
Malla [in]
-
Tipo: LPD3DXMESH
Puntero a una interfaz ID3DXMesh que representa la malla de entrada.
-
TexStageIndex [in]
-
Tipo: DWORD
Índice que representa la fase de textura.
-
TangentIndex [in]
-
Tipo: DWORD
Índice que proporciona el índice de uso para los datos tangentes. La declaración de vértice implica el uso; este índice modifica el uso con el índice de uso. Para obtener más información sobre una declaración de vértice, vea Declaración de vértice (Direct3D 9).
-
BinormIndex [in]
-
Tipo: DWORD
Índice que proporciona el índice de uso para los datos binormales. La declaración de vértice implica el uso; este índice modifica el uso con el índice de uso. Para obtener más información sobre una declaración de vértice, vea Declaración de vértice (Direct3D 9).
-
Encapsular [in]
-
Tipo: DWORD
Establezca este valor en 0 para ningún ajuste o en 1 para encapsular en las instrucciones you y V.
-
pAdjacency [in]
-
Tipo: const DWORD*
Puntero a una matriz de tres DWORD por cara que se rellenarán con índices de cara adyacentes. El número de bytes de esta matriz debe ser al menos ((3 * GetNumFaces) * sizeof(DWORD)).
Valor devuelto
Tipo: HRESULT
Si la función se ejecuta correctamente, el valor devuelto se S_OK. Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.
Comentarios
Si la declaración de vértice de malla especifica campos tangentes o binormales, D3DXComputeTangent actualizará los datos tangentes o binormal proporcionados por el usuario. Como alternativa, establezca TangentIndex en D3DX_DEFAULT para no actualizar los datos tangentes proporcionados por el usuario o establezca BinormIndex en D3DX_DEFAULT para no actualizar los datos binormal proporcionados por el usuario. TexStageIndex no se puede establecer en D3DX_DEFAULT.
D3DXComputeTangent depende de la declaración de vértice de malla que contenga el campo binormal (BinormIndex), el campo tangente (TangentIndex) o ambos. Si faltan ambos, se producirá un error en esta función.
Esta función simplemente llama a D3DXComputeTangentFrameEx con los siguientes 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 | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también