Compartir a través de


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

Consulte también

Funciones de malla