![]() |
![]() |
![]() |
SphericalHarmonics.EvaluateHemisphereLight Method |
Language: |
Evaluates a light that is a linear interpolation between two colors over the sphere.
Visual Basic .NET 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
);Managed C++ public: static void EvaluateHemisphereLight(
int order,
Vector3 direction,
ColorValue top,
ColorValue bottom,
float redOutput __gc[],
float greenOutput __gc[],
float blueOutput __gc[]
);JScript .NET 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 spherical harmonic (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 spherical harmonic (SH) vector for the red component. greenOutput System.Single[]. Output spherical harmonic (SH) vector for the green component. blueOutput System.Single[]. Output spherical harmonic (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.
![]()
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.
![]()
Exceptions
InvalidCallException The method call is invalid. For example, a method's parameter might contain an invalid value.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center