Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Модель отражения Фонга (также называемая Фонг освещением или Фонг освещением ) является эмпирической моделью из локального освещения точек на поверхность , разработанной компьютерной графика исследователь Буй Туонг Фонг . В компьютерной 3D-графике это иногда называют «затенением Фонга», особенно если модель используется с одноименным методом интерполяции и в контексте пиксельных шейдеров или в других местах, где расчет освещения может упоминаться как « штриховка ».

История [ править ]

Модель отражения Фонга была разработана Буй Туонг Фонгом из Университета Юты , который опубликовал ее в своей докторской диссертации 1975 года. диссертация. [1] [2] Он был опубликован вместе с методом интерполяции вычислений для каждого отдельного пикселя , растеризованного из модели полигональной поверхности; метод интерполяции известен как затенение Фонга , даже когда он используется с моделью отражения, отличной от модели Фонга. На момент своего появления методы Фонга считались радикальными, но с тех пор они стали де-факто базовым методом затенения для многих приложений рендеринга. Методы Фонга оказались популярными благодаря в целом эффективному использованию времени вычислений на рендеринг пикселя.

Описание [ править ]

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

Наглядная иллюстрация уравнения Фонга: здесь свет белый, окружающий и рассеянный цвета - синие, а зеркальный цвет - белый, отражающий небольшую часть света, падающего на поверхность, но только в очень узких местах. Интенсивность диффузной составляющей зависит от направления поверхности, а окружающая составляющая однородна (независимо от направления).

Для каждого источника света в сцене компоненты и определяются как интенсивности (часто как значения RGB ) зеркальных и рассеянных компонентов источников света соответственно. Один член управляет окружающим освещением; иногда он вычисляется как сумма вкладов всех источников света.

Для каждого материала в сцене определены следующие параметры:

, которая представляет собой постоянную зеркального отражения, коэффициент отражения зеркального члена падающего света,
, которая представляет собой постоянную диффузного отражения, коэффициент отражения диффузного члена падающего света ( коэффициент отражения Ламберта ),
, который представляет собой константу внешнего отражения, коэффициент отражения внешнего элемента, присутствующего во всех точках визуализированной сцены, и
, который является константой блеска для этого материала, которая больше для более гладких и зеркальных поверхностей. Когда эта константа велика, зеркальное отражение мало.
Векторы для расчета затенения Фонга и Блинна – Фонга

Кроме того, у нас есть

, который представляет собой набор всех источников света,
, который является вектором направления от точки на поверхности к каждому источнику света ( задает источник света),
, которая является нормалью в этой точке на поверхности,
, которое является направлением, в котором идеально отраженный луч света будет направлен из этой точки на поверхности, и
- направление, указывающее на зрителя (например, на виртуальную камеру).

Затем модель отражения Фонга предоставляет уравнение для расчета освещенности каждой точки поверхности :

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

а шляпы указывают, что векторы нормализованы . На диффузный термин не влияет направление зрителя ( ). Зеркальный член велик только тогда, когда направление наблюдателя ( ) совмещено с направлением отражения . Их расположение измеряется степенью косинуса угла между ними. Косинус угла между нормализованными векторами и равен их скалярному произведению . Когда он большой, в случае почти зеркального отражения, зеркальный свет будет маленьким, потому что любая точка обзора, не выровненная с отражением, будет иметь косинус меньше единицы, который быстро приближается к нулю при увеличении до высокого увеличения.

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

Когда цвет представлен в виде значений RGB , как это часто бывает в компьютерной графике , это уравнение обычно моделируется отдельно для интенсивностей R, G и B, что позволяет использовать разные константы отражения и для разных цветовых каналов .

Изменения, более эффективные в вычислительном отношении [ править ]

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

Другое приближение [3], которое касается вычисления возведения в степень в зеркальном члене, следующее: учитывая, что зеркальный член следует учитывать только в том случае, если его скалярное произведение положительно, его можно аппроксимировать как

где , и - действительное число, которое не обязательно должно быть целым. Если выбрана степень 2, т. Е. Где - целое число, то выражение может быть более эффективно вычислено путем возведения в квадрат времени, т. Е.

Это приближение к зеркальному члену справедливо для достаточно большого целого числа (обычно 4 или 8 будет достаточно).

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

Этот метод заменяет несколько умножений на переменное возведение в степень и устраняет необходимость в точной векторной нормализации на основе обратного квадратного корня.

Модель обратного отражения Фонга [ править ]

Модель отражения Фонга в сочетании с затенением Фонга представляет собой приближение затенения объектов в реальной жизни. Это означает, что уравнение Фонга может связать затенение, видимое на фотографии, с нормалями поверхности видимого объекта. Обратное относится к желанию оценить нормали поверхности для визуализированного изображения, естественного или созданного на компьютере.

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

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

С константой, равной окружающему освещению, и константой, равной диффузному отражению. Мы можем переписать уравнение так:

Это можно переписать для линии, проходящей через цилиндрический объект, как:

Например, если направление света на 45 градусов выше объекта, мы получаем два уравнения с двумя неизвестными.

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

Если объект не цилиндрический, у нас есть три неизвестных нормальных значения . Тогда два уравнения по-прежнему позволяют нормали вращаться вокруг вектора обзора, поэтому требуются дополнительные ограничения из предшествующей геометрической информации. Например, при распознавании лиц эти геометрические ограничения могут быть получены с использованием анализа главных компонентов (PCA) в базе данных карт глубины лиц, допуская только решения нормалей поверхности, которые встречаются в нормальной популяции. [4]

Приложения [ править ]

Модель отражения Фонга часто используется вместе с затенением Фонга для затенения поверхностей в программном обеспечении для трехмерной компьютерной графики . Помимо этого, он также может использоваться для других целей. Например, он использовался для моделирования отражения теплового излучения от зондов Pioneer в попытке объяснить аномалию Pioneer . [5]

См. Также [ править ]

  • Список распространенных алгоритмов затенения
  • Модель затенения Блинна – Фонга - изменение модели отражения Фонга в пользу точности и эффективности вычислений.
  • Затенение Фонга - метод затенения, который интерполирует векторы нормалей, а не интенсивности
  • Гамма-коррекция
  • Функция распределения двунаправленной отражательной способности - обобщенные модели отражения
  • Зеркальный свет - другие уравнения зеркального освещения

Внешние ссылки [ править ]

  • Модель отражения Фонга в Matlab
  • Модель отражения Фонга в GLSL

Ссылки [ править ]

  1. ^ Буй Туонг Фонг, Освещение для компьютерных изображений , Сообщения ACM 18 (1975), нет. 6, 311–317.
  2. ^ Школа вычислительной техники Университета Юты, http://www.cs.utah.edu/school/history/#phong-ref
  3. Лион, Ричард Ф. (2 августа 1993 г.). «Переформулировка затенения Фонга для упрощения аппаратного рендерера» (PDF) . Проверено 7 марта 2011 года .
  4. ^ Бум, BJ; Spreeuwers, LJ; Veldhuis, RNJ (сентябрь 2009 г.). Цзян, Сяои; Петков, Николай (ред.). Коррекция освещенности на основе модели для изображений лиц в неконтролируемых сценариях . Конспект лекций по информатике. 5702 . С. 33–40. Bibcode : 2009LNCS.5702 ..... J . DOI : 10.1007 / 978-3-642-03767-2 . hdl : 11693/26732 . ISBN 978-3-642-03766-5.
  5. ^ Ф. Франциско; О. Бертолами; PJS Gil; Дж. Парамос (2012). «Моделирование отражающего теплового вклада в ускорение космического корабля Pioneer». Успехи в космических исследованиях . 49 (3): 337–346. arXiv : 1103,5222 . Bibcode : 2012AdSpR..49..579S . DOI : 10.1016 / j.asr.2011.10.016 .