Яркое пятно света, которое появляется на блестящих предметах при освещении
Зеркальный блик — это яркое пятно света , которое появляется на блестящих объектах при освещении (например, см. изображение справа). Зеркальные блики важны в 3D-компьютерной графике , поскольку они дают сильную визуальную подсказку для формы объекта и его расположения относительно источников света в сцене.
Микрограни
Термин «зеркальный» означает, что свет идеально отражается зеркальным образом от источника света к наблюдателю. Зеркальное отражение видно только там, где нормаль к поверхности ориентирована точно посередине между направлением входящего света и направлением наблюдателя; это называется направлением половинного угла , потому что оно делит пополам угол между входящим светом и наблюдателем. Таким образом, зеркально отражающая поверхность будет показывать зеркальный блик как идеально четкое отраженное изображение источника света. Однако многие блестящие объекты показывают размытые зеркальные блики.
Это можно объяснить существованием микрограней . Мы предполагаем, что поверхности, которые не являются идеально гладкими, состоят из множества очень маленьких граней, каждая из которых является идеальным зеркальным отражателем. Эти микрограни имеют нормали, которые распределены вокруг нормали аппроксимирующей гладкой поверхности. Степень, в которой нормали микрограней отличаются от нормали гладкой поверхности, определяется шероховатостью поверхности. В точках на объекте, где гладкая нормаль близка к направлению половинного угла, многие микрограни указывают в направлении половинного угла, и поэтому зеркальный блик яркий. По мере удаления от центра блика гладкая нормаль и направление половинного угла становятся дальше друг от друга; количество микрограней, ориентированных в направлении половинного угла, падает, и поэтому интенсивность блика падает до нуля.
Зеркальный блик часто отражает цвет источника света, а не цвет отражающего объекта. Это происходит потому, что многие материалы имеют тонкий слой прозрачного материала над поверхностью пигментированного материала. Например, пластик состоит из крошечных цветных шариков, взвешенных в прозрачном полимере, а человеческая кожа часто имеет тонкий слой масла или пота над пигментированными клетками. Такие материалы будут показывать зеркальные блики, в которых все части цветового спектра отражаются одинаково. На металлических материалах, таких как золото, цвет зеркального блика будет отражать цвет материала.
Модели
Существует ряд различных моделей для прогнозирования распределения микрограней. Большинство из них предполагают, что нормали микрограней распределены равномерно вокруг нормали; такие модели называются изотропными . Если микрограни распределены с предпочтением определенного направления вдоль поверхности, распределение является анизотропным .
ПРИМЕЧАНИЕ: В большинстве уравнений, когда говорится, это означает
Где 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 — дорогостоящая операция. Чтобы избежать их расчета, исходную формулу можно переписать в следующем виде:
Диффузный
Зеркальный
Комментарии
T можно наблюдать как нормальный рельеф, и после этого можно применять другой BRDF, нежели распределение Фонга. Анизотропный следует использовать в сочетании с изотропным распределением, таким как распределение Фонга, чтобы получить правильное зеркальное свечение
Анизотропное распределение Уорда
Анизотропное распределение Уорда [1] использует два контролируемых пользователем параметра α x и α y для управления анизотропией. Если два параметра равны, то получается изотропный блик. Зеркальный член в распределении:
Зеркальный член равен нулю, если N · L < 0 или N · V < 0. Все векторы являются единичными векторами. Вектор V — это направление взгляда, L — это направление от точки поверхности к свету, H — это направление половинного угла между V и L , N — это нормаль к поверхности, а X и Y — это два ортогональных вектора в нормальной плоскости, которые определяют анизотропные направления.
Модель Кука–Торренса
Модель Кука–Торренса [5] использует зеркальный член в форме
.
Здесь D — это коэффициент распределения Бекмана, как указано выше, а F — это член Френеля . По соображениям производительности в трехмерной графике в реальном времени приближение Шлика часто используется для аппроксимации члена Френеля.
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 ).
^ ab R. Cook и K. Torrance. "Модель отражения для компьютерной графики". Computer Graphics (SIGGRAPH '81 Proceedings), Vol. 15, No. 3, July 1981, pp. 301–316.
^ Гейдрих, Вольфганг; Зайдель, Ганс-Петер. "Эффективная визуализация анизотропных поверхностей с использованием аппаратного обеспечения компьютерной графики" (PDF) . Группа компьютерной графики, Университет Эрлангена . Архивировано из оригинала (PDF) 1 ноября 2011 г.