SphericalHarmonics.EvaluateHemisphereLight Method |
Language: |
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 GraphicsStream, _
ByVal greenOutput As GraphicsStream, _
ByVal blueOutput As GraphicsStream _
)C# public static void EvaluateHemisphereLight(
int order,
Vector3 direction,
ColorValue top,
ColorValue bottom,
GraphicsStream redOutput,
GraphicsStream greenOutput,
GraphicsStream blueOutput
);C++ public:
static void EvaluateHemisphereLight(
int order,
Vector3 direction,
ColorValue top,
ColorValue bottom,
GraphicsStream^ redOutput,
GraphicsStream^ greenOutput,
GraphicsStream^ blueOutput
);JScript public static function EvaluateHemisphereLight(
order : int,
direction : Vector3,
top : ColorValue,
bottom : ColorValue,
redOutput : GraphicsStream,
greenOutput : GraphicsStream,
blueOutput : GraphicsStream
);
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 Microsoft.DirectX.GraphicsStream
Output SH vector for the blue component.greenOutput Microsoft.DirectX.GraphicsStream
Output SH vector for the green component.blueOutput Microsoft.DirectX.GraphicsStream
Output SH vector for the blue 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.
Send comments about this topic to Microsoft. © Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center