D3DXComputeTangentFrame 函式
計算網格的正切值、二進位和一般向量。
語法
HRESULT D3DXComputeTangentFrame(
_In_ ID3DXMesh *pMesh,
_In_ DWORD dwOptions
);
參數
-
pMesh [in]
-
類型: ID3DXMesh*
輸入 ID3DXMesh 網格物件的指標。
-
dwOptions [in]
-
類型: DWORD
一或多個 D3DXTANGENT 旗標的組合。
使用 Null 來指定下列選項:
- 以弧度為單位,依角度加權一般向量長度,由兩個邊緣減去的頂點。
- 從 UV 紋理座標計算正交笛卡兒座標。
- 紋理不會以 U 或 V 方向包裝
- 紋理座標的部分衍生專案會正規化。
- 頂點會以反時針方向排列在每個三角形周圍。
- 使用輸入網格中已存在的個別頂點一般向量。
- 結果會儲存在原始輸入網格中。 如果需要建立新的頂點,函式將會失敗。
傳回值
類型: HRESULT
如果函式成功,傳回值會S_OK。 如果函式失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA E_OUTOFMEMORY。
備註
此函式只會使用下列輸入參數呼叫 D3DXComputeTangentFrameEx :
D3DXComputeTangentFrameEx(pMesh, D3DDECLUSAGE_TEXCOORD, 0,
D3DDECLUSAGE_BINORMAL, 0, D3DDECLUSAGE_TANGENT, 0,
D3DDECLUSAGE_NORMAL, 0,
dwOptions | D3DXTANGENT_GENERATE_IN_PLACE,
NULL, 0.01f, 0.25f, 0.01f, NULL, NULL);
群組邊緣和分割頂點時,會視需要處理單一性。 如果需要分割任何頂點,函式將會失敗。 每個頂點的計算標準向量一律正規化為具有單位長度。
計算正交笛卡兒座標的最強固解決方案是不要設定旗標D3DXTANGENT_ORTHOGONALIZE_FROM_U和D3DXTANGENT_ORTHOGONALIZE_FROM_V,以便從這兩個 UV 紋理座標計算正交座標。 不過,在此情況下,如果 U 或 V 為零,則函式會分別使用D3DXTANGENT_ORTHOGONALIZE_FROM_V或D3DXTANGENT_ORTHOGONALIZE_FROM_U計算正交座標。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱