Модель освещения Фонга и просчет теней

При использовании метода Фонга для определения цвета в каждой точке интерполируются не интенсивности отраженного света, а векторы нормалей.

Последовательность действий такова:

· определяются нормали к граням;

· по нормалям к граням определяются усредненные нормали в вершинах. В каждой точке закрашиваемой грани определяется интерполированный вектор нормали;

· по направлению векторов нормали определяется цвет точек грани в соответствии с принятой моделью отражения цвета.

Как уже было сказано, метод заключается в интерполяции вектора нормали. Для интерполяции будут использоваться векторы , исходящие из начала координат плоскости проецирования и параллельными соответствующим нормалям  в вершинах a, b и c.

Нахождение  и  производится следующим образом:

,

.

где  – координаты векторов .

В данном случае необходимости в вычислении некоторых величин на каждом шаге нет. Так что их можно вычислить заранее

Теперь необходимо найти координаты вектора :

.

Вектор  параллелен вектору для нормали в точке , поэтому его можно использовать для расчета отражения света так же, как и вектор нормали .

 

Метод Фонга дает правильное закрашивание. Если интерполировать нормали передней грани, то по центру будут интерполированные нормали, параллельные лучам света. Поэтому центр передней грани будет светлее, чем края.

 

 

Просчет теней

 

       Для построения сплошных теней на этапе вычисления «локальной» интенсивности цвета в точке объекта проверяется «видимость» каждого источника света из этой точки.

       Принцип работы алгоритма.

1. Из проверяемой точки строится луч, направленный на источник света.

2. Производится поиск пересечений этого луча с примитивами сцены между проверяемой точкой и источником.

3. Если найдено хотя бы одно пересечение, то проверяемая точка находится в тени. При расчете ее цвета источник, для которого проводилась проверка, не учитывается.

4. Если пересечений не найдено, точка не в тени. При расчете ее цвета учитываем

проверяемый источник.

       Такой метод нахождения теней дает приемлемый результат до тех пор, пока на сцене нет прозрачных объектов. Также этот метод не позволяет достичь построения реалистичной тени, потому что не учитывается дифракция света (сглаженная тень у края)

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: