![]() |
![]() |
![]() |
Evaluates a directional light and returns spectral spherical harmonic (SH) data.
Syntax
HRESULT WINAPI D3DXSHEvalDirectionalLight(
UINT Order, const D3DXVECTOR3 *pDir, FLOAT RIntensity, FLOAT GIntensity, FLOAT BIntensity, FLOAT *pROut, FLOAT *pGOut, FLOAT *pBOut );
Parameters
- Order
- [in] Order of the SH evaluation. Must be in the range of D3DXSH_MINORDER to D3DXSH_MAXORDER, inclusive. The evaluation generates Order2 coefficients. The degree of the evaluation is Order - 1.
- pDir
- [in] Pointer to the (x, y, z) hemisphere axis direction vector in which to evaluate the SH basis functions. See Remarks.
- RIntensity
- [in] The red intensity of the light.
- GIntensity
- [in] The green intensity of the light.
- BIntensity
- [in] The blue intensity of the light.
- pROut
- [out] Pointer to the output SH vector for the red component.
- pGOut
- [out] Optional pointer to the output SH vector for the green component.
- pBOut
- [out] Optional pointer to the output SH vector for the blue component.
Return Value
If the function succeeds, the return value is D3D_OK.
If the function fails, the return value can be D3DERR_INVALIDCALL.
Remarks
The output vector is computed so that if the intensity ratio R/G/B is equal to 1, the resulting exit radiance of a point directly under the light on a diffuse object with an albedo of 1 would be 1.0. This will compute three spectral samples; pROut will be returned, while pGOut and pBOut may be returned.
On the sphere with unit radius as shown, direction can be specified simply with theta, the angle about the z-axis in the right-handed direction, and phi, the angle from z.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.
Function Information
Header d3dx9math.h Import library d3dx9.lib Minimum operating systems Windows 98
See Also
Precomputed Radiance Transfer