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 по формуле


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