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 |
|
Bibliothek |
|
Siehe auch