DirectX SDK

D3DLIGHT7

The D3DLIGHT7 structure defines a set of lighting properties. This structure is used with the IDirect3DDevice7::GetLight and IDirect3DDevice7::SetLight methods.

typedef struct _D3DLIGHT7 {
    D3DLIGHTTYPE    dltType;            
    D3DCOLORVALUE   dcvDiffuse;         
    D3DCOLORVALUE   dcvSpecular;        
    D3DCOLORVALUE   dcvAmbient;         
    D3DVECTOR       dvPosition;         
    D3DVECTOR       dvDirection;        
    D3DVALUE        dvRange;            
    D3DVALUE        dvFalloff;          
    D3DVALUE        dvAttenuation0;     
    D3DVALUE        dvAttenuation1;     
    D3DVALUE        dvAttenuation2;     
    D3DVALUE        dvTheta;            
    D3DVALUE        dvPhi;              
} D3DLIGHT7, *LPD3DLIGHT7;

Members

dltType
Type of the light source. This value is one of the members of the D3DLIGHTTYPE enumerated type.
dcvDiffuse
Diffuse color emitted by the light. This member is a D3DCOLORVALUE structure.
dcvSpecular
Specular color emitted by the light. This member is a D3DCOLORVALUE structure.
dcvAmbient
Ambient color emitted by the light. This member is a D3DCOLORVALUE structure.
dvPosition
Position of the light in world space. This member has no meaning for directional lights and is ignored in that case.
dvDirection
Direction that the light is pointing in world space. This member only has meaning for directional and spotlights. This vector need not be normalized, but it should have a nonzero length.
dvRange
Distance beyond which the light has no effect. The maximum allowable value for this member is D3DLIGHT_RANGE_MAX, which is defined as the square root of FLT_MAX. This member does not affect directional lights.
dvFalloff
Decrease in illumination between a spotlight's inner cone (the angle specified by dvTheta ) and the outer edge of the outer cone (the angle specified by dvPhi ). This feature was implemented for DirectX 5.0. For details on how dvFalloff values affect a spotlight, see Spotlight Falloff Model.

The effect of falloff on the lighting is subtle. Furthermore, a small performance penalty is incurred by shaping the falloff curve. For these reasons, most developers set this value to 1.0.

dvAttenuation0, dvAttenuation1, and dvAttenuation2
Values specifying how the light intensity changes over distance. (Attenuation does not affect directional lights.) These members represent a light's constant, linear, and quadratic attenuation factors. For information about how these attenuation values affect lighting in a scene, see Light Attenuation Over Distance. Valid values for these members range from 0.0 to infinity.
dvTheta
Angle, in radians, of a spotlight's inner cone—that is, the fully illuminated spotlight cone. This value must be in the range from 0 through the value specified by dvPhi.
dvPhi
Angle, in radians, defining the outer edge of the spotlight's outer cone. Points outside this cone are not lit by the spotlight. This value must be between 0 and pi.

Remarks

This structure, introduced with DirectX 7.0, supersedes the D3DLIGHT2 and D3DLIGHT structures used with previous versions of DirectX.

This structure differs from the D3DLIGHT2 structure in that it provides members for independent diffuse, specular, and ambient colors of a light. Each color value is used in the lighting module of Direct3D Immediate Mode to determine the lighting in a scene.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Windows CE: Unsupported.
  Version: Requires DirectX 7.0.
  Header: Declared in d3dtypes.h.

See Also

IDirect3DDevice7::GetLight, IDirect3DDevice7::SetLight, D3DLIGHTTYPE, Lighting and Materials