Компьютерная графика | ||||||||||||||||||||
теория, алгоритмы, примеры на С++ и OpenGL | ||||||||||||||||||||
2D теория | 3D теория | OpenGL | Обратная связь / Авторам | |||||||||||||||||
Мы vkontakte.ru ДрузьяСловарь синонимов русского языка |
Закон Ламберта. Модель отражения Фонга. Модель отражения Блинна-ФонгаМодель отражения Фонга является довольно популярной и широкоиспользуемой в компьютерной графике, несмотря на то, что существуют более точные физические модели. Она была предложена в статье Ву Тонг Фонга (Bui Tuong Phong) в 1975 году. Пусть заданы точечный источник света, расположенный в некоторой точке, поверхность, которая будет освещаться и наблюдатель. Будем считать, что наблюдатель точечный. Каждая точка поверхности имеет свои координаты и в ней определена нормаль к поверхности. Её освещенность складывается из трех компонент: фоновое освещение (ambient), рассеянный свет (diffuse) и бликовая составляющая (specular). Свойства источника определяют мощность излучения для каждой из этих компонент, а свойства материала поверхности определяют её способность воспринимать каждый вид освещения.
Для удобства все векторы, описанные ниже, берутся единичными. В этом случае косинус угла между ними совпадает со скалярным произведением. 1. Фоновое освещение это постоянная в каждой точке величина надбавки к освещению. Вычисляется фоновая составляющая освещения как: , где - фоновая составляющая освещенности в точке, – свойство материала воспринимать фоновое освещение, – мощность фонового
освещения.
Из формулы выше видно, что фоновая составляющая освещенности не зависит от пространственных координат освещаемой точки и источника. Поэтому при моделировании освещения, в большинстве случае, не имеет смысла брать более одного фонового источника света. Часто просто задается некое глобальное фоновое освещение всей сцены. 2. Рассеянный свет при попадании на поверхность рассеивается равномерно во все стороны. При расчете такого освещения учитывается только ориентация поверхности (нормаль) и направление на источник света. Рассеянная составляющая рассчитывается по закону косинусов (закон Ламберта):
, где – рассеянная составляющая освещенности в точке, – свойство материала воспринимать рассеянное освещение, – мощность рассеянного освещения, – направление из точки на источник, - вектор нормали в точке. 3. Зеркальный свет при попадании на поверхность
подчиняется следующему закону: “Падающий и отраженный лучи лежат в одной плоскости
с нормалью к отражающей поверхности в точке падения, и эта нормаль делит угол
между лучами на две равные части”. Т.о. отраженная составляющая освещенности в
точке зависит от того, насколько близки направления на наблюдателя и
отраженного луча. Это можно выразить следующей формулой:
Прим. В общем случае вектора , и не лежат в одной плоскости.
, где
– зеркальная составляющая освещенности в точке, – коэффициент зеркального отражения, – мощность зеркального освещения, – направление отраженного луча, - направление на наблюдателя, - коэффициент блеска, свойство материала. Именно зеркальное отражение представляет наибольший интерес, но в то же время его расчет требует больших вычислительных затрат. При фиксированном положении поверхности относительно источников света фоновая и рассеянные составляющие освещения могут быть просчитаны единожды для всей сцены, т.к. их значение не зависит от направления взгляда. С зеркальной составляющей этот фокус не сработает и придется пересчитывать её каждый раз, когда взгляд меняет свое направление. Во всех вычислениях выше, для рассеянной и зеркальной компонен, если скалярное произведение в правой части меньше нуля, то соответствующая компонента освещенности полагается равной нулю. Вычисление угла между отраженным лучом и направлением на наблюдателяУгол между отраженным лучом и направлением на наблюдателя можно рассчитать по следующей формуле:
Получается это следующим образом. Проекции векторов и на вектор нормали совпадают и равны , следовательно, проекция вектора на вектор нормали равна . Т.к. вектор нормали делит угол, между падающим и отраженным лучами на две равные части, то вектор коллинеарен вектору . Отсюда получаем формулу, написанную выше. Скалярное произведение рассчитывается по формуле: Упрощенный расчет зеркальной компоненты освещенности. Модель Блинна-ФонгаДля расчета отраженной компоненты требуется выполнить довольно громоздкие вычисления. Существует модель Блинна-Фонга, представляющая собой модель Фонга с упрощенным расчетом зеркального отражения. Вычислим в каждой точке вектор полупути (halfway vector): который показывает ориентацию площадки, на которой будет максимальное отражение. Тогда величину можно заменить величиной . При этом α <> β и, в общем случае, соотношение между ними зависит от пространственной связи векторов , и . Вектор называется вектором полупути, т.к. если все три вектора , и лежат в одной плоскости, то угол между и составляет половину угла между и . Модель отражения Блинна-Фонга никогда в точности не совпадает с моделью Фонга, однако можно подобрать соответствующие значения α и β, для которых распределения зеркальной составляющей по поверхности для обеих моделей будут очень близкими. Вместе с тем, в ряде случаев модель Блинна-Фонга требует значительно меньше вычислений, например в случае направленного бесконечно-удаленного источника. Учет цветаЕсли используется цветовая модель RGB, то все расчеты, представленные выше проделываются для каждой компоненты R, G и B по отдельности. Если при этом освещать поверхность синим рассеянным светом (0.0, 0.0, 1.0), а она воспринимает только красный рассеянный (1.0, 0.0, 0.0), то рассеянная составляющая освещенности во всех точках этой поверхности будет равна (0.0, 0.0, 0.0). ИтогиЭта модель не учитывает способности материала излучать свет (emission), затухания света с расстоянием и не описывает модель такого источника света, как прожектор. Это описывается в следующей статье "Свойства источника света и материала. Типы источников света. Суммарное освещение". |