# D3DMLIGHT

A version of this page is also available for

4/8/2010

This structure is used to describe lights in Direct3D Mobile.

## Syntax

```
typedef struct _D3DMLIGHT {
D3DMLIGHTTYPE Type;
D3DMCOLORVALUE Diffuse;
D3DMCOLORVALUE Specular;
D3DMCOLORVALUE Ambient;
D3DMVECTOR Position;
D3DMVECTOR Direction;
float Range;
float Attenuation0;
float Attenuation1;
float Attenuation2;
} D3DMLIGHT;
```

## Members

**Type**

A D3DMLIGHTTYPE enumeration value describing the type of light.

**Diffuse**

A D3DMCOLORVALUE structure describing the color of the light's contribution to the diffuse light present in the scene.

**Specular**

A**D3DMCOLORVALUE**structure describing the color of the light's contribution to the specular light present in the scene.

**Ambient**

A**D3DMCOLORVALUE**structure describing the color of the light's contribution to the ambient light present in the scene.

**Position**

A D3DMVECTOR structure describing the position of the light in world space. The vector's members are in IEEE 32-bit floating point, and w is assumed to be equal to 1.0. This vector is only valid for point lights.

**Direction**

A**D3DMVECTOR**structure describing the direction that the light is facing. This vector is only valid for directional lights.

**Range**

A float value describing the distance at which output from a light is cut off. This is a floating point scalar in world space and only applicable for point lights.

**Attenuation0**

Afloat value describing the linear light attenuation parameter for calculating the attenuation factor in the lighting equation. The range of this value is zero to positive infinity. See the Remarks section.

**Attenuation1**

A float value describing the squared attenuation parameter for calculating the attenuation factor in the lighting equation. The range of this value is zero to positive infinity. See the Remarks section.

**Attenuation2**

A float value describing the exponential attenuation parameter for calculating the attenuation factor in the lighting equation. The range of this value is zero to positive infinity. See the Remarks section.

## Remarks

The members of the **D3DMCOLORVALUE** and **D3DMVECTOR** structures are of the D3DMVALUE type. Therefore, they can be either IEEE 32 bit floating point values or16.16 fixed point values. You must provide the interpretations for these members' values by setting the D3DMFORMAT value in any method calls that use **D3DMLIGHT**.

The attenuation members are values that specify how light intensity changes over distance. Attenuation values are ignored for directional lights. These members represent attenuation constants. For information on attenuation, see Lighting Equations. Valid values for these members range from 0.0 to positive infinity. For non-directional lights, all three attenuation values should not be set to 0.0 at the same time.

## Requirements

Header | d3dmtypes.h |

Windows Embedded CE | Windows CE 5.0 and later |

Windows Mobile | Windows Mobile Version 5.0 and later |