D3DXSHEvalDirection function (D3dx9math.h)

Note

The D3DX (D3DX 9, D3DX 10, and D3DX 11) utility library is deprecated and is not supported for Windows Store apps.

Note

Instead of using this function, we recommend that you use the Spherical Harmonics Math library function XMSHEvalDirection.

Evaluates the spherical harmonic (SH) basis functions from an input direction vector.

Syntax

FLOAT* D3DXSHEvalDirection(
  _Out_       FLOAT       *pOut,
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pDir
);

Parameters

pOut [out]

Type: FLOAT*

Pointer to Spherical harmonic (SH) output coefficients. The evaluation generates Order² coefficients. See Remarks.

Order [in]

Type: UINT

Order of the SH evaluation. Must be in the range of D3DXSH_MINORDER to D3DXSH_MAXORDER, inclusive. The evaluation generates Order² coefficients. The degree of the evaluation is Order - 1.

pDir [in]

Type: const D3DXVECTOR3*

(x, y, z) direction vector in which to evaluate the SH basis functions. Must be normalized. See Remarks.

Return value

Type: FLOAT*

Pointer to SH output coefficients. See Remarks.

Remarks

Each coefficient of the basis function Yₗₘ is stored at memory location l² + m + l, where:

  • l is the degree of the basis function.
  • m is the basis function index for the given l value and ranges from -l to l, inclusive.

On the sphere with unit radius, as shown in the following illustration, direction can be specified simply with theta, the angle about the z-axis in the right-handed direction, and phi, the angle from z.

illustration of a sphere with unit radius

The following equations show the relationship between Cartesian (x, y, z) and spherical (theta, phi) coordinates on the unit sphere. The angle theta varies over the range of 0 to 2 pi, while phi varies from 0 to pi.

equations of the relationship between cartesian and spherical coordinates

Requirements

Requirement Value
Header
D3dx9math.h
Library
D3dx9.lib

See also

Math Functions

Precomputed Radiance Transfer (Direct3D 9)