次の方法で共有


D3DXComputeNormals

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

HRESULT 
D3DXComputeNormals(
  LPD3DXBASEMESH pMesh,
  CONST DWORD * pAdjacency
);

パラメータ

  • pMesh
    ID3DXBaseMesh インターフェイスへのポインターです。正規化されたメッシュ オブジェクトを示します。
  • pAdjacency
    面ごとの 3 つの DWORD 値を格納する配列のポインターです。この配列によって、作成するプログレッシブ メッシュの各面に隣接する 3 つの面を定義します。このパラメーターはオプションです。使わないときは NULL に設定してください。

戻り値

成功すると、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 内容