0, если источник конический и вершина лежит вне конуса освещенности, (max{(v, 1), 0})с, где у - единичный вектор от источника света к вершине, / - единичный вектор направления для источника света (GL_SPOT_DIRECTION); е - коэффициент GLJSPOT_EXPONENT;
d - расстояние до источника света; кс - коэффициент GL_CONSTANT_ATTENUATION;
/с/ - коэффициент GL_LINEAR_ATTENUATION; кц- коэффициент GL_QUADRATIC_ATTENUATION; ІаГ фоновая освещенность от і-го источника света;
/- единичный вектор направления на источник света; и - единичный вектор нормали;
ldr диффузная освещенность от і-го источника света; Ксг диффузный цвет (GL_DIFFUSE); р - коэффициент Фонга (GLJSHININESS); Ді - бликовая освещенность от і-го источника света;
AV цвет бликов (GL_SPECULAR).
После проведения всех вычислений цветовые компоненты отсекаются по отрез-ку [0, 1].
12. Работа с библиотекой OpenGL
Ушечание. Расчет освещенности в OpenGL не учитывает затенения одних объектов другими.
12.7. Полупрозрачность. Использование а-канала До сих пор мы не рассматривали «-канал (в RGBA-представлении цвета) и значение соответствующей компоненты во всех примерах всегда равнялось единице, Задавая значения, отличные от единицы, можно смешивать цвет выводимого пиксела с цветом пиксела, уже находящегося в соответствующем месте на экране, создав вая тем самым эффект прозрачности.
При этом наиболее естественно думать об этом, считая что RGB-компоненты задают цвет фрагмента, а «-значение - его непрозрачность (степень поглощения фрагментом проходящего через него света). Так, если у стекла установить значение а, равное 0.2, то в результате вывода цвет получившегося фрагмента будет на 20% состоять из собственного цвета стекла и на 80 % - из цвета фрагмента под ним.
Для использования а-канала необходимо сначала разрешить режим прозрачности и смешения цветов командой
glEnable ( GLJ3LEND );
В процессе смешения цветов цветовые компоненты выводимого фрагмента RfîsBsAs смешиваются с цветовыми компонентами уже выведенного фрагмента RdGdBdAd по формуле