共用方式為


D3DXComputeTangent 函式

計算紋理階段中指定之紋理座標的正切向量。 提供以支援繼承應用程式。 使用 D3DXComputeTangentFrameEx 以取得更好的結果。

語法

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

參數

網格 [in]

類型: LPD3DXMESH

代表輸入網格的 ID3DXMesh 介面指標。

TexStageIndex [in]

類型: DWORD

表示紋理階段的索引。

TangentIndex [in]

類型: DWORD

提供正切資料使用量索引的索引。 頂點宣告表示使用方式;此索引會修改使用方式索引的使用方式。 如需頂點宣告的詳細資訊,請參閱 頂點宣告 (Direct3D 9)

BinormIndex [in]

類型: DWORD

提供二進位資料使用量索引的索引。 頂點宣告表示使用方式;此索引會修改使用方式索引的使用方式。 如需頂點宣告的詳細資訊,請參閱 頂點宣告 (Direct3D 9)

包裝 [in]

類型: DWORD

針對沒有包裝,請將此值設定為 0,或設定為 1,以將您和 V 方向換行。

pAdjacency [in]

類型:const DWORD*

每個臉部三個 DWORD 陣列的指標,要填入連續的臉部索引。 此陣列中的位元組數目至少必須是 ( (3 * GetNumFaces) * sizeof (DWORD) ) 。

傳回值

類型: HRESULT

如果函式成功,傳回值會S_OK。 如果函式失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA E_OUTOFMEMORY。

備註

如果網格頂點宣告指定正切或二進位欄位, D3DXCompute Tangent 將會更新任何使用者提供的正切或二進位資料。 或者,將 TangentIndex 設定為 D3DX_DEFAULT ,以不更新使用者提供的正切資料,或將 BinormIndex 設定為 D3DX_DEFAULT,不要更新使用者提供的二進位資料。 TexStageIndex 無法設定為 D3DX_DEFAULT。

D3DXCompute Tangent 取決於網格頂點宣告,其中包含 binormal 欄位 (BinormIndex) 、正切欄位 (TangentIndex) ,或兩者。 如果兩者都遺失,此函式將會失敗。

此函式只會使用下列輸入參數呼叫 D3DXComputeTangentFrameEx

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

規格需求

需求
標頭
D3DX9Mesh.h
程式庫
D3dx9.lib

另請參閱

網格函數