Зеркальная подсветка
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2008 г. ) |
Зеркальный блик — это яркое пятно света , которое появляется на блестящих объектах при освещении (например, см. изображение справа). Зеркальные блики важны в компьютерной 3D-графике , поскольку они дают четкое визуальное представление о форме объекта и его расположении относительно источников света на сцене.
Микрофасеты
[ редактировать ]Термин зеркальный означает, что свет идеально отражается зеркально от источника света к зрителю. Зеркальное отражение видно только там, где нормаль к поверхности ориентирована ровно посередине между направлением падающего света и направлением наблюдателя; это называется направлением половинного угла , потому что оно делит пополам угол между падающим светом и зрителем. Таким образом, зеркально отражающая поверхность будет показывать зеркальный блик как идеально четкое отраженное изображение источника света. Однако многие блестящие объекты имеют размытые зеркальные блики.
Это можно объяснить существованием микрограней . Мы предполагаем, что поверхности, которые не являются идеально гладкими, состоят из множества очень маленьких граней, каждая из которых является идеальным зеркальным отражателем. Эти микрограни имеют нормали, которые распределены вокруг нормали аппроксимирующей гладкой поверхности. Степень, в которой нормали микрограней отличаются от нормали гладкой поверхности, определяется шероховатостью поверхности. В точках объекта, где гладкая нормаль близка к направлению половины угла, многие микрограни указывают в направлении половины угла, поэтому зеркальный свет получается ярким. По мере удаления от центра блика гладкая нормаль и направление полуугла становятся все дальше друг от друга; количество микрограней, ориентированных в направлении половины угла, уменьшается, и поэтому интенсивность блика падает до нуля.
Зеркальный свет часто отражает цвет источника света, а не цвет отражающего объекта. Это связано с тем, что многие материалы имеют тонкий слой прозрачного материала над поверхностью пигментированного материала. Например, пластик состоит из крошечных цветных шариков, взвешенных в прозрачном полимере, а кожа человека часто имеет тонкий слой масла или пота над пигментированными клетками. Такие материалы будут демонстрировать зеркальные блики, в которых одинаково отражаются все части цветового спектра. На металлических материалах, таких как золото, цвет зеркального блика будет отражать цвет материала.
Модели
[ редактировать ]Существует ряд различных моделей для прогнозирования распределения микрограней. Большинство полагает, что нормали микрограней распределены вокруг нормали равномерно; эти модели называются изотропными . Если микрограни распределены с предпочтением определенного направления вдоль поверхности, то распределение является анизотропным .
ПРИМЕЧАНИЕ. В большинстве уравнений, когда говорится это значит
Распространение Фонга
[ редактировать ]В модели отражения Фонга интенсивность зеркального блика рассчитывается как:
Где R — зеркальное отражение вектора света от поверхности, а V — вектор точки обзора.
В модели затенения Блинна-Фонга интенсивность зеркального блика рассчитывается как:
Где N — нормаль к гладкой поверхности, а H — направление половины угла (вектор направления посередине между L , вектором света, и V , вектором точки обзора).
Число n называется показателем Фонга и представляет собой выбираемое пользователем значение, которое контролирует видимую гладкость поверхности. Эти уравнения подразумевают, что распределение нормалей микрограней является приблизительно гауссовым (для больших ), или приблизительно распределение Пирсона типа II соответствующего угла. [1] Хотя это полезная эвристика и дает правдоподобные результаты, она не является физически обоснованной моделью.
- Еще одна аналогичная формула, но только рассчитанная по-другому:
- где R — вектор отражения глаза, E — вектор глаза ( вектор обзора ), N — вектор нормали к поверхности . Все векторы нормированы ( ). L — вектор света. Например, затем:
- Примерная формула такая:
- Если вектор H нормализован затем
Гауссово распределение
[ редактировать ]Немного лучшую модель распределения микрограней можно создать с помощью распределения Гаусса . [ нужна ссылка ] Обычная функция вычисляет интенсивность зеркального блика следующим образом:
где m — константа от 0 до 1, которая контролирует видимую гладкость поверхности. [2]
Распределение Бекмана
[ редактировать ]Физически обоснованной моделью распределения микрограней является распределение Бекмана: [3]
где m — среднеквадратичный наклон микрограней поверхности (шероховатость материала). [4] По сравнению с эмпирическими моделями, приведенными выше, эта функция «дает абсолютную величину коэффициента отражения без введения произвольных констант; недостатком является то, что она требует большего количества вычислений». [5] Однако эту модель можно упростить, поскольку . Также отметим, что произведение а функция распределения поверхности нормирована по полусфере, которая подчиняется этой функции.
Анизотропное распределение Гейдриха – Зейделя
[ редактировать ]Гейдрих-Зейдель. [6] Распределение представляет собой простое анизотропное распределение, основанное на модели Фонга. Его можно использовать для моделирования поверхностей с небольшими параллельными канавками или волокнами, таких как матовый металл , сатин и волосы.
Параметры
[ редактировать ]Входные параметры:
- D = направление резьбы (в оригинальных статьях оно обозначается как T )
- s = показатель блеска. Значения находятся в диапазоне от 0 до бесконечности.
- N = нормаль реальной поверхности
- L = вектор от точки к источнику света
- V = вектор от точки к зрителю
- T = направление резьбы, основанное на реальной нормали к поверхности.
- P = Проекция вектора L на плоскость с нормалью T (в оригинальной статье это обозначено как N' ).
- R = отраженный падающий луч света от T . Входящий луч света равен отрицательному L .
Все векторы единичны.
Условия
[ редактировать ]Если какое-то из условий из списка не выполнено, то цвет равен нулю.
Примечание. Этот список не оптимизирован.
Формула
[ редактировать ]Сначала нам нужно исправить исходное направление волокна D чтобы оно было перпендикулярно реальной нормали к поверхности N. , Это можно сделать, проецируя направление волокна на плоскость с нормалью N :
Ожидается, что волокно имеет цилиндрическую форму. Обратите внимание на тот факт, что норма волокна зависит от положения источника света. Нормаль волокна в данной точке равна:
Отраженный луч, необходимый для расчета зеркального отражения:
Окончательный расчет
[ редактировать ]Оптимизация
[ редактировать ]Расчет R и P — дорогостоящая операция. Чтобы избежать их расчета, исходную формулу можно переписать в следующем виде:
Диффузный
[ редактировать ]Зеркальный
[ редактировать ]Комментарии
[ редактировать ]Т может наблюдаться как нормальная шишка, и после этого можно применять другой BRDF, кроме Фонга. Анизотропный следует использовать в сочетании с изотропным распределением, таким как распределение Фонга, для создания правильного зеркального блика.
Анизотропное распределение Уорда
[ редактировать ]Анизотропное распределение Уорда [1] использует два управляемых пользователем параметра α x и α y для управления анизотропией. Если два параметра равны, получается изотропное выделение. Зеркальный член в распределении:
Зеркальный член равен нулю, если N · L < 0 или N · V < 0. Все векторы являются единичными векторами. Вектор V — направление взгляда, L — направление от точки поверхности к источнику света, H — направление половины угла между V и L , N — нормаль к поверхности, а X и Y — два ортогональных вектора в нормальной плоскости. которые задают анизотропные направления.
Модель Кука – Торранса
[ редактировать ]Модель Кука-Торренса. [5] использует зеркальный термин формы
- .
Здесь D — коэффициент распределения Бекмана , как указано выше, а F — член Френеля . Из соображений производительности в 3D-графике реального времени аппроксимация Шлика часто используется для аппроксимации члена Френеля.
G — член геометрического затухания, описывающий самозатенение из-за микрограней, и имеет вид
- .
В этих формулах V — вектор камеры или глаза, H — вектор половинного угла, L — вектор источника света, N — вектор нормали, а α — угол между H и N.
Использование нескольких дистрибутивов
[ редактировать ]При желании разные распределения (обычно с использованием одной и той же функции распределения с разными значениями m или n ) можно объединить, используя средневзвешенное значение. Это полезно, например, для моделирования поверхностей, которые имеют небольшие гладкие и шероховатые участки, а не равномерную шероховатость.
См. также
[ редактировать ]- Список распространенных алгоритмов затенения
- Зеркальное отражение
- Диффузное отражение
- Гамма-коррекция
- Уравнения Френеля
- Ретрорефлектор
- Отражение (физика)
- Преломление
- Зеркальность
Ссылки
[ редактировать ]- ^ Ричард Лайон, «Реформулировка затенения Фонга для упрощения аппаратного средства рендеринга», Технический отчет Apple № 43, Apple Computer, Inc., 1993 PDF.
- ^ Гласснер, Эндрю С. (ред.). Введение в трассировку лучей. Сан-Диего: Academic Press Ltd, 1989. с. 148.
- ^ Петр Бекманн, Андре Спиццикино, Рассеяние электромагнитных волн на шероховатых поверхностях, Pergamon Press, 1963, 503 стр. (Переиздано Artech House, 1987, ISBN 978-0-89006-238-8 ).
- ^ Фоли и др. Компьютерная графика: принципы и практика . Менло-Парк: Аддисон-Уэсли, 1997. с. 764.
- ^ Перейти обратно: а б Р. Кук и К. Торренс. « Модель отражения для компьютерной графики ». Компьютерная графика (SIGGRAPH '81 Proceedings), Vol. 15, № 3, июль 1981 г., стр. 301–316.
- ^ Гейдрих, Вольфганг; Зейдель, Ганс-Петер. «Эффективная визуализация анизотропных поверхностей с использованием оборудования компьютерной графики» (PDF) . Группа компьютерной графики, Университет Эрлангена . Архивировано из оригинала (PDF) 1 ноября 2011 года.