Модели освещения OpenGL и DirectX учитывают воздействие рассеянного и направленного света. Рассеянный свет освещает любую грань одинаково, независимо от ее ориентации в пространстве. Результат освещения направленным светом зависит от характеристик материала. При диффузном отражении матовой поверхностью код цвета пропорционален скалярному произведению векторов нормали и направления из вершины на источник света. При зеркальном отражении блестящей поверхностью код цвета зависит от того, попадает ли в камеру отраженный луч. В этом случае в расчетах участвуют угол между направлением отраженного луча и направлением на наблюдателя и коэффициент, характеризующий ослабление света по мере увеличения этого угла. Кроме того, поверхность может светиться собственным светом, который не зависит от наличия источников света, но и не освещает соседние предметы.

Характеристики источника света передаются в конвейер при помощи функции gll_ight*v( ). Функции передается константа, определяющая номер источника, тип характеристики и ее значение. Библиотека OpenGL обеспечивает вычисление цвета вершин, освещенных несколькими источниками. Обычно количество обрабатываемых OpenGL источников света не превышает семи штук. В файле gl.h определены идентифицирующие источник константы GL_LIGHT0 - GL_LIGHT7, одна из которых передается в качестве первого параметра. Для задания позиции нулевого источника потребуется определить массив pos из четырех вещественных чисел и вызвать функцию glLightfv(GL_LIGHT0. GL_P0SITI0N. pos).

Позиция источника света задается вектором из четырех элементов (X, У, Z, W). Библиотека вычисляет декартовы координаты источника (х, г/, z) делением элементов X, У, ZHa W. Таким образом, при задании W= 1.0 обеспечивается совпадеМатериал и освещение ние декартовых и однородных координат. Значение V/, равное нулю, определяет бесконечно удаленный источник. Результаты деления Х/0.0, У/0.0, 7/0.0. бесконечно велики, но направление на эту бесконечно удаленную точку определяется конечными числами X, У, 2. При помощи этого способа задаются источники направленного света, например солнце, освещенность от которых не зависит от координат вершины и определяется только направлением ее нормали.


⇐ Предыдущая| |Следующая ⇒