D3DXComputeTangent 関数

テクスチャ ステージで指定されたテクスチャ座標のタンジェント ベクトルを計算します。 レガシ アプリケーションをサポートするために提供されます。 より良い結果を得るには 、D3DXComputeTangentFrameEx を使用します。

構文

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

パラメーター

Mesh [in]

種類: LPD3DXMESH

入力メッシュを表す ID3DXMesh インターフェイスへのポインター。

TexStageIndex [in]

種類: DWORD

テクスチャ ステージを表すインデックス。

TangentIndex [in]

種類: DWORD

タンジェント データの使用インデックスを提供するインデックス。 頂点宣言は使用法を意味します。このインデックスは、使用状況インデックスを使用して使用状況を変更します。 頂点宣言の詳細については、「 頂点宣言 (Direct3D 9)」を参照してください。

BinormIndex [in]

種類: DWORD

二項データの使用状況インデックスを提供するインデックス。 頂点宣言は使用法を意味します。このインデックスは、使用状況インデックスを使用して使用状況を変更します。 頂点宣言の詳細については、「 頂点宣言 (Direct3D 9)」を参照してください。

折り返し [in]

種類: DWORD

この値は、折り返しがない場合は 0、You 方向と V 方向の折り返しでは 1 に設定します。

pAdjacency [in]

型: const DWORD*

隣接する面インデックスで塗りつぶされる 1 つの顔に対して 3 つの DWORD の配列へのポインター。 この配列のバイト数は、少なくとも ((3 * GetNumFaces) * sizeof(DWORD)) である必要があります。

戻り値

種類: HRESULT

関数が成功した場合、戻り値はS_OK。 関数が失敗した場合、戻り値は次のいずれかになります:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY。

解説

メッシュ頂点宣言で接線フィールドまたは二項フィールドが指定されている場合、 D3DXComputeTangent はユーザー指定のタンジェントまたは二項データを更新します。 または、TangentIndex を D3DX_DEFAULT に設定してユーザー指定のタンジェント データを更新しないようにするか、BinormIndex を D3DX_DEFAULT に設定してユーザー指定の binormal データを更新しないようにします。 TexStageIndex をD3DX_DEFAULTに設定することはできません。

D3DXComputeTangent は、二項フィールド (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

関連項目

メッシュ関数