SphericalHarmonics.EvaluateHemisphereLight(Int32,Vector3,ColorValue,ColorValue,Single[],Single[],Single[]) Method (Microsoft.DirectX.Direct3D)

Evaluates a light that is a linear interpolation between two colors over the sphere.


Visual Basic Public Shared Sub EvaluateHemisphereLight( _
    ByVal order As Integer, _
    ByVal direction As Vector3, _
    ByVal top As ColorValue, _
    ByVal bottom As ColorValue, _
    ByVal redOutput() As Single, _
    ByVal greenOutput() As Single, _
    ByVal blueOutput() As Single _
C# public static void EvaluateHemisphereLight(
    int order,
    Vector3 direction,
    ColorValue top,
    ColorValue bottom,
    float[] redOutput,
    float[] greenOutput,
    float[] blueOutput
C++ public:
static void EvaluateHemisphereLight(
    int order,
    Vector3 direction,
    ColorValue top,
    ColorValue bottom,
    array<float>^ redOutput,
    array<float>^ greenOutput,
    array<float>^ blueOutput
JScript public static function EvaluateHemisphereLight(
    order : int,
    direction : Vector3,
    top : ColorValue,
    bottom : ColorValue,
    redOutput : float[],
    greenOutput : float[],
    blueOutput : float[]


order System.Int32
Order of the spherical harmonic (SH) evaluation. Must be in the range of SphericalHarmonics.MinimumOrder to SphericalHarmonics.MaximumOrder, inclusive. The evaluation generates order2 coefficients. The degree of the evaluation is order - 1.
direction Microsoft.DirectX.Vector3
The (x, y, z) hemisphere axis direction vector in which to evaluate the SH basis functions. See Remarks.
top Microsoft.DirectX.Direct3D.ColorValue
The sky color.
bottom Microsoft.DirectX.Direct3D.ColorValue
The ground color.
redOutput System.Single[]
Output SH vector for the red component.
greenOutput System.Single[]
Output SH vector for the green component.
blueOutput System.Single[]
Output SH vector for the red component.


The interpolation is done linearly between the two points, not over the surface of the sphere (that is, if the axis were (0,0,1), it is linear in Z, not in the azimuthal angle). The resulting spherical lighting function is normalized so that a point on a perfectly diffuse surface with no shadowing and a normal pointed towards direction would result in exit radiance with a value of 1 (if the top color were white and the bottom color were black). This is a very simple model where top represents the intensity of the "sky" and bottom represents the intensity of the "ground".

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.

Spherical coordinates

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.

Spherical coordinates equations



The method call is invalid. For example, a method's parameter might contain an invalid value.