共用方式為


D3DXComputeNormals 函式

計算網格中每個頂點的單位法線。 提供以支援繼承應用程式。 使用 D3DXComputeTangentFrameEx 來取得更好的結果。

語法

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

參數

pMesh [in, out]

類型: LPD3DXBASEMESH

ID3DXBaseMesh介面的指標,代表標準化網格物件。

pAdjacency [in]

類型:const DWORD*

每個臉部三個 DWORD 陣列的指標,指定所建立漸進式網格中每個臉部的三個芳鄰。 此參數是選擇性的,如果未使用,則應該設定為 Null

傳回值

類型: HRESULT

如果函式成功,傳回值會S_OK。 如果函式失敗,傳回值可以是下列其中一項:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA E_OUTOFMEMORY。

備註

輸入網格必須以其彈性頂點格式指定D3DFVF_NORMAL旗標 (FVF) 。

頂點的一般值是透過平均共用該頂點的所有臉部法線來產生。

如果提供相鄰,則會忽略複寫的頂點,並「平滑」覆寫。 如果未提供相鄰,複寫的頂點只會從明確參考它們的臉部中平均。

此函式只會使用下列輸入參數呼叫 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

另請參閱

網格函數