Исследование и разработка методов нефотореалистичной визуализации для реализации графической библиотеки реального времени Часть 2

Модель освещения Фонга

Модель отражения Фонга – является довольно популярной и широкоиспользуемой в компьютерной графике, несмотря на то, что существуют более точные физические модели.

В этой модели освещения помимо векторов позиции источника освещения и нормали (как в случае с диффузной моделью освещения) используются еще два вектора: видовой вектор и вектор отражения.

Пусть заданы точечный источник света, расположенный в некоторой точке, поверхность, которая будет освещаться, и наблюдатель. Будем считать, что наблюдатель точечный [4]. Каждая точка поверхности имеет свои координаты и в ней определена нормаль к поверхности. Если посмотреть на рисунок 5, то можно увидеть, что освещенность точки складывается из трех компонент: фоновое освещение (ambient), рассеянный свет (diffuse) и бликовая составляющая (specular). Свойства источника определяют мощность излучения для каждой из этих компонент, а свойства материала поверхности определяют её способность воспринимать каждый вид освещения.

+
+
=

Фоновая составляющая

Рассеянная составляющая

Зеркальная составляющая

Суммарное освещение

Рисунок 5. Компоненты модели освещения Фонга

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

  1. Фоновое освещение это постоянная в каждой точке величина надбавки к освещению. Вычисляется фоновая составляющая освещения как:

, где                             (3)

— фоновая составляющая освещенности в точке,

– свойство материала воспринимать фоновое освещение,

– мощность фонового освещения.

Из формулы выше видно, что фоновая составляющая освещенности не зависит от пространственных координат освещаемой точки и источника. Поэтому при моделировании освещения, в большинстве случае, не имеет смысла брать более одного фонового источника света. Часто просто задается некое глобальное фоновое освещение всей сцены.

  1. Рассеянный свет при попадании на поверхность рассеивается равномерно во все стороны. При расчете такого освещения учитывается только ориентация поверхности (нормаль) и направление на источник света. Рассеянная составляющая рассчитывается по закону косинусов (закон Ламберта (2) описанный выше)
  2. Зеркальный свет при попадании на поверхность подчиняется следующему закону: «Падающий и отраженный лучи лежат в одной плоскости с нормалью к отражающей поверхности в точке падения, и эта нормаль делит угол между лучами на две равные части». На рисунке 6 показаны вектора зеркального освещения. Таким образом отраженная составляющая освещенности в точке зависит от того, насколько близки направления на наблюдателя и отраженного луча.

    Это можно выразить следующей формулой:

где                 (4)

– зеркальная составляющая освещенности в точке,

– коэффициент зеркального отражения,

– мощность зеркального освещения,

– направление отраженного луча,

— направление на наблюдателя,

α — коэффициент блеска, свойство материала.

Рисунок 6. Вектора зеркалного освещения

Именно зеркальное отражение представляет наибольший интерес, но в то же время его расчет требует больших вычислительных затрат. При фиксированном положении поверхности относительно источников света фоновая и рассеянные составляющие освещения могут быть просчитаны единожды для всей сцены, т.к. их значение не зависит от направления взгляда[5]. С зеркальной составляющей этот фокус не сработает и придется пересчитывать её каждый раз, когда взгляд меняет свое направление.

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

Угол между отраженным лучом и направлением на наблюдателя можно рассчитать по следующей формуле(6):

(5)
(6)

Рисунок 7. Иллюстрация для формул 5 и 6

Получается это следующим образом. Проекции векторов и на вектор нормали совпадают и равны , следовательно, проекция вектора на вектор нормали равна . Т.к. вектор нормали делит угол, между падающим и отраженным лучами на две равные части, то вектор коллинеарен вектору [7]. Отсюда получаем формулу, написанную выше. Скалярное произведение рассчитывается по формуле:

(7)


Рисунок 8. Изображение, полученное при помощи модели освещения Фонга

Упрощенный расчет зеркальной компоненты освещенности. Модель Блинна-Фонга

Для расчета отраженной компоненты требуется выполнить довольно громоздкие вычисления. Существует модель Блинна-Фонга, представляющая собой модель Фонга с упрощенным расчетом зеркального отражения. Вычислим в каждой точке вектор полупути H(halfway vector):

(8)

который показывает ориентацию площадки, на которой будет максимальное отражение. Тогда величину можно заменить величиной . При этом α <> β и, в общем случае, соотношение между ними зависит от пространственной связи векторов , и . Вектор называется вектором полупути, т.к. если все три вектора , и лежат в одной плоскости, то угол между и составляет половину угла между и .

Увидеть изображение, полученное с помощью модели освещения Блинна-Фонга можно на рисунке 9.

Рисунок 9. Изображение, полученное при помощи модели освещения Блинна-Фонга

Также хотелось отметить, если используется цветовая модель RGB, то все расчеты, представленные выше, проделываются для каждой компоненты R, G и B по отдельности. Если при этом освещать поверхность синим, рассеянным светом (0.0, 0.0, 1.0), а она воспринимает только красный рассеянный (1.0, 0.0, 0.0), то рассеянная составляющая освещенности во всех точках этой поверхности будет равна (0.0, 0.0, 0.0).

Нефотореалистичные модели освещения

Существуют модели освещения, изначально ориентированные на получение изображения, выглядящее как нарисованное человеком. Далее будут рассмотрены самые известные нефотореалистичные модели освещения.

Эффект мультипликации(Toon shading)

Простейшей подобной моделью является так называемый toon shading. В этой модели освещенность, полученная из одной из стандартных моделей освещения, дискретизируется, приводя к появлению небольшого числа областей с постоянным освещением [19].

Данная модель похожа на модель диффузного освещения, но использует величину (n, l) для выбора одного из трех цветов – цвет тени, собственный цвет объекта и цвет блика. При таком способе освещения возникает ощущение, что объекты нарисованы карандашом или кистью.

Формула освещенности точки имеет вид(9):

(9)

Иногда вместо явного задания нескольких уровней яркости (которым соответствуют определенные цвета) используется одномерная текстура. В этом случае найденное значение диффузной освещенности используется для индексирования в эту текстуру и получения из нее результирующего цвета.

Она может выглядеть, например, следующим образом:

(Синяя рамка не входит в маску, а отображается для наглядности)

Освещенность в каждой точке объекта измеряется от 0 до 1. Аналогично, координаты точки в маске принимают значения от 0 до 1 (в шейдере). Таким образом, можно сопоставить яркости освещения некоторый цвет в текстуре с маской. Так, тусклое освещение соответствует самому черному (слева в маске) цвету, а наиболее яркое – белому (справа в маске).

Идея в том, чтобы получать цвет из текстуры маски, соответствующий освещенности, т.о. значение освещенности для диффузной компоненты используется в качестве х-координаты для текстурного сэмплера. Увидеть изображение, полученное с помощью описанного подхода можно на рисунке 10.

Рисунок 10. Изображение, полученное при помощи модели освещения Toon Shading

Модель освещения Гуч (Gooch)

Еще одной нефотореалистичной моделью освещения является модель Эми Гуч. Данная модель освещения подробно рассмотрена в «A Non-Photorealistic Lighting Model For Automatic Technical Illustration«, by Amy Gooch, Bruce Gooch, Peter Shirley.Elaine Cohen, SIGGRAPH 98 [20]. Правда в статье большое внимание уделено моделированию данного алгоритма на основе систем, использующий модель Фонга. Сейчас же в таком подходе нет необходимости, поскольку легко можно разработать шейдер, подменяющий стандартную модель освещения.

Эта модель похожа на модель диффузного освещения, но использует величину (N, L) для перехода от одного цвета (теплого) к другому (холодному) в зависимости от диффузной составляющей.

Формула освещенности данной модели имеет вид:

Cout = mix(Ccool, Cwarm, [(N, L) + 1] / 2) + Ispecular
(10)

Получается, что для точек, в которых скалярное произведение положительно (то есть они освещены), больший вклад в результирующий цвет вносит теплый цвет, а для точек, лежащих с «обратной» стороны объекта (нормаль в которых сонаправлена с направлением освещения), больший вклад вносит холодный цвет. Таким образом, создается интересный эффект, когда (N, L) < 0 возникает ощущение, что свет проходит сквозь объект и приобретает другой цвет. Также объединение двух цветов помогает выделить границы объекта: нет больше областей, не имеющих цвета (окрашенных в черный).

В описанной простой формуле никак не используется собственный цвет объекта (например, его текстура). Эми Гуч предлагает следующее изменение формулы:

,                         (11)

,                         (12)

где – собственный цвет объекта,

,

.

На рисунке 11можно увидеть изображение, полученное с помощью описанной модели освещения.


Рисунок 11. Изображение, полученное при помощи модели освещения Эми Гуч

Сравнение рассмотренных методов

Модель Ламберта – это самая простая модель освещения, она позволяет описывать отражение идеально диффузных поверхностей. Но в природе не существует таких. Поэтому часто используют более сложные модели учитывающие фоновое освещение, рассеянный и зеркальный свет. Например модель Фонга или модель Блинна- Фонга.

Модель отражения Блинна-Фонга никогда в точности не совпадает с моделью Фонга, однако можно подобрать соответствующие значения α и β, для которых распределения зеркальной составляющей по поверхности для обеих моделей будут очень близкими. Вместе с тем, в ряде случаев модель Блинна-Фонга требует значительно меньше вычислений, например в случае направленного бесконечно-удаленного источника.

На рисунке 12 можно увидеть разницу межу моделью Фонга и Блинна-Фонга.

а    б

Рисунок 12. а) Модель освещения Блинна-Фонга, б) Модель освещения Фонга

Для получения нефотореалистичных изображений, можно использовать специальные нефотореалистичные модели освещения. Простейшей подобной моделью является Toon shading. Одним из его недостатков является то, что получаемые при его использовании цвета, не зависят от положения наблюдателя (т.к. диффузное освещенность определяется только углом между нормалью к поверхности и направлением на источник света).

Ещё одной моделью нефотореалистичного рендеринга является модель Эми Гуч. Данная модель одна из простейших моделей и вместе с тем дает красивые визуальные эффекты.

Реклама
Запись опубликована в рубрике Диплом. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s