Задание освещенности Для вычисления цвета вершины необходимо задавать для каждого типа освещения цвет источника, цвет материала и нормаль к поверхности. Используются также и другие характеристики, которые соответствуют характеристикам материала и источника света в OpenGL.
Графическая библиотека для имитации условий освещенности реальных объектов позволяет хранить и обрабатывать в графическом конвейере характеристики материала и нескольких источников света. При вычислении цвета точки суммируются результаты, создаваемые всеми типами освещения и всеми источниками света.
Источник света задается полями структуры типа D3DLIGHT9, синтаксис которой приведен ниже:
typedef struct _D3DLIGHT9 {
D3DLIGHTTYPE Туре; //Тип источника.
D3DC0L0RVALUE Diffuse; //Три компонента света.
D3DC0L0RVALUE Specular;
D3DC0L0RVALUE Ambient;
D3DVECT0R Position; //Координаты источника
D3DVECT0R Direction; //Направление света
float Range; //Дальность освещения
float Falloff;
float AttenuationO; //Коэффициенты ослабления float Attenuationl; //света от расстояния
float Attenuation2; //(в направленном источнике не используются), float Thêta: //Угол, в котором находятся центральное и периферийное пятна, float Phi; } D3DLIGHT9; В этой структуре можно в поле Туре указать один из трех типов источников света. Значение D3DLIGHT_DIRECTI0NAL создает направленный источник света. Его лучи распространяются параллельно, аналогично солнечным лучам, и их интенсивность не падает с увеличением расстояния от источника. Значение D3DLIGHT_P0INT создает точечный источник света. Источник имитирует освещение электрической лампочкой без отражателя. Его лучи распространяются радиаль-но, и их интенсивность падает с расстоянием. В поле Range можно указать расстояние, начиная с которого библиотека прекращает вычислять вклад источника в цвет грани. Значение D3DLIGHT_SP0T задает прожектор. Источник имитирует освещение, формируемое лампочкой с отражателем. Цвет точек изменяется только у точек, попадающих в конус с осью Di recti on и телесным углом Thêta. В более узком конусе с углом Phi свет имеет повышенную интенсивность.