D3DXComputeTangent-Funktion

Berechnet die Tangentenvektoren für die Texturkoordinaten, die in der Texturphase angegeben sind. Wird bereitgestellt, um Legacyanwendungen zu unterstützen. Verwenden Sie D3DXComputeTangentFrameEx für bessere Ergebnisse.

Syntax

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

Parameter

Mesh [in]

Typ: LPD3DXMESH

Zeiger auf eine ID3DXMesh-Schnittstelle , die das Eingabegitter darstellt.

TexStageIndex [in]

Typ: DWORD

Index, der die Texturphase darstellt.

TangentIndex [in]

Typ: DWORD

Index, der den Nutzungsindex für die Tangentendaten bereitstellt. Die Vertexdeklaration impliziert die Verwendung; Dieser Index ändert die Verwendung mit dem Nutzungsindex. Weitere Informationen zu einer Vertexdeklaration finden Sie unter Vertexdeklaration (Direct3D 9).

BinormIndex [in]

Typ: DWORD

Index, der den Nutzungsindex für die binormalen Daten bereitstellt. Die Vertexdeklaration impliziert die Verwendung; Dieser Index ändert die Verwendung mit dem Nutzungsindex. Weitere Informationen zu einer Vertexdeklaration finden Sie unter Vertexdeklaration (Direct3D 9).

Umschließen [in]

Typ: DWORD

Legen Sie diesen Wert für keinen Umbruch auf 0 fest, oder auf 1 für den Umbruch in den Richtungen "Sie" und "V".

pAdjacency [in]

Typ: const DWORD*

Zeiger auf ein Array von drei DWORDs pro Gesicht, das mit benachbarten Gesichtsindizes gefüllt werden soll. Die Anzahl der Bytes in diesem Array muss mindestens ((3 * GetNumFaces) * sizeof(DWORD)) sein.

Rückgabewert

Typ: HRESULT

Wenn die Funktion erfolgreich ist, wird der Rückgabewert S_OK. Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden sein: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Bemerkungen

Wenn die Deklaration des Mesh-Scheitelpunkts tangent oder binormale Felder angibt, aktualisiert D3DXComputeTangent alle vom Benutzer bereitgestellten Tangenten- oder Binormaldaten. Legen Sie alternativ TangentIndex auf D3DX_DEFAULT fest, um die vom Benutzer bereitgestellten Tangentendaten nicht zu aktualisieren, oder legen Sie BinormIndex auf D3DX_DEFAULT fest, um die vom Benutzer bereitgestellten binormalen Daten nicht zu aktualisieren. TexStageIndex kann nicht auf D3DX_DEFAULT festgelegt werden.

D3DXComputeTangent hängt von der Vertexdeklaration des Gitters ab, die entweder das Binormalfeld (BinormIndex), das Tangentenfeld (TangentIndex) oder beides enthält. Wenn beide fehlen, schlägt diese Funktion fehl.

Diese Funktion ruft einfach D3DXComputeTangentFrameEx mit den folgenden Eingabeparametern auf:

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

Anforderungen

Anforderung Wert
Header
D3DX9Mesh.h
Bibliothek
D3dx9.lib

Siehe auch

Gitterfunktionen