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);
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱