Microsoft DirectX 8.1 (C++)

D3DXComputeNormals

Computes normals for each vertex in a mesh.

HRESULT D3DXComputeNormals(
  LPD3DXBASEMESH pMesh
  CONST DWORD*   pAdjacency  
);

Parameters

pMesh
[in, out] Pointer to an ID3DXBaseMesh interface, representing the normalized mesh object.
pAdjacency
[in] Pointer to an array of three DWORDs per face that specify the three neighbors for each face in the created progressive mesh. This parameter is optional and should be set to NULL if it is unused.

Return Values

If the function succeeds, the return value is D3D_OK.

If the function fails, the return value can be D3DERR_INVALIDCALL.

Note The input mesh must have the D3DFVF_NORMAL flag specified in its FVF.

A normal for a vertex is generated by averaging the normals of all faces that share that vertex.

If adjacency is provided, replicated vertices are ignored and "smoothed" over. If adjacency is not provided, replicated vertices will have normals averaged in from only the faces explicitly referencing them.

Requirements

Header: Declared in D3dx8mesh.h.
Import Library: Use D3dx8.lib.