D3DXComputeNormals 関数

メッシュ内の各頂点の単位法線を計算します。 レガシ アプリケーションをサポートするために提供されます。 より良い結果を得るには 、D3DXComputeTangentFrameEx を使用します。

構文

HRESULT D3DXComputeNormals(
  _Inout_       LPD3DXBASEMESH pMesh,
  _In_    const DWORD          *pAdjacency
);

パラメーター

pMesh [in, out]

種類: LPD3DXBASEMESH

正規化されたメッシュ オブジェクトを表す ID3DXBaseMesh インターフェイスへのポインター。

pAdjacency [in]

型: const DWORD*

作成されたプログレッシブ メッシュ内の各面の 3 つの隣接点を指定する、1 つの面に 3 つの DWORD の配列へのポインター。 このパラメーターは省略可能であり、使用されていない場合は NULL に設定する必要があります。

戻り値

型: HRESULT

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

解説

入力メッシュには、フレキシブル頂点形式 (FVF) で指定された D3DFVF_NORMAL フラグが必要です。

頂点の法線は、その頂点を共有するすべての面の法線を平均化することによって生成されます。

隣接性が指定されている場合、レプリケートされた頂点は無視され、"スムージング" されます。 隣接性が指定されていない場合、レプリケートされた頂点は、それらを明示的に参照している面からのみ平均化された法線を持つことになります。

この関数は、次の入力パラメーターを使用して D3DXComputeTangentFrameEx を呼び出すだけです。

D3DXComputeTangentFrameEx( pMesh,
                           D3DX_DEFAULT,
                           0,
                           D3DX_DEFAULT,
                           0,
                           D3DX_DEFAULT,
                           0,
                           D3DDECLUSAGE_NORMAL,
                           0,
                           D3DXTANGENT_GENERATE_IN_PLACE | D3DXTANGENT_CALCULATE_NORMALS,
                           pAdjacency,
                           -1.01f,
                           -0.01f,
                           -1.01f,
                           NULL,
                           NULL);

要件

要件
ヘッダー
D3DX9Mesh.h
ライブラリ
D3dx9.lib

関連項目

メッシュ関数