In addition to the states discussed in Render States, Direct3D devices also control lighting states. When lighting states need to be changed, they are changed through the device interface. Therefore, your application can apply a particular rendering or lighting state to either a single primitive or a group of primitives.
The characteristics of the device lighting state are controlled by the IDirect3DDevice3::SetLightState method. All of the possible lighting states are specified by the D3DLIGHTSTATETYPE enumerated type, a member of which is passed as the first parameter to IDirect3DDevice3::SetLightState. The attributes of the lighting state are: