Насколько физически обосновано различие и зеркальное различие?

34

Классический способ затенения поверхностей в компьютерной графике в реальном времени представляет собой комбинацию (ламбертовского) диффузного термина и зеркального термина, наиболее вероятно, Phong или Blinn-Phong.

Изображение из Википедии

Теперь с тенденцией к физическому рендерингу и, следовательно, моделям материалов в таких двигателях, как Frostbite , Unreal Engine или Unity 3D, эти BRDF изменились. Например (довольно универсальный в этом отношении), последний Unreal Engine по-прежнему использует диффузию Ламберта, но в сочетании с моделью микроснимков Кука-Торранса для зеркального отражения (в частности, с использованием GGX / Trowbridge-Reitz и модифицированной аппроксимации Слика для термина Френеля). ). Кроме того, значение «металличность» используется для различения проводника и диэлектрика.

Для диэлектриков диффузный цвет окрашивается с использованием альбедо материала, а зеркальный всегда бесцветный. Для металлов diffuse не используется, а зеркальный термин умножается на альбедо материала.

Что касается реальных физических материалов, существует ли строгое разделение между рассеянным и зеркальным и, если да, то откуда оно? Почему один цвет, а другой нет? Почему проводники ведут себя по-другому?

Дэвид Кури
источник

Ответы:

30

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

Глядя на единственную легкую частицу, попавшую в точку на поверхности материала, он может делать 2 вещи: отражать или преломлять. Отраженный свет будет отражаться от поверхности, как зеркало. Преломленный свет отражается внутри материала и может выходить из материала на некотором расстоянии от того места, куда он попал. Наконец, каждый раз, когда свет взаимодействует с молекулами материала, он теряет некоторую энергию. Если он теряет достаточно своей энергии, мы считаем, что он полностью поглощен.

По словам Нати, «свет состоит из электромагнитных волн. Таким образом, оптические свойства вещества тесно связаны с его электрическими свойствами». Вот почему мы группируем материалы как металлы или неметаллы.

Неметаллы будут демонстрировать как отражение, так и преломление. Неметаллов

Металлические материалы имеют только отражение. Весь преломленный свет поглощается. металлы

Было бы чрезмерно дорого пытаться смоделировать взаимодействие легкой частицы с молекулами материала. Мы вместо этого делаем некоторые предположения и упрощения.

Упрощение рефракции

Если размер пикселя или область затенения велики по сравнению с расстояниями входа-выхода, мы можем сделать предположение, что расстояния фактически равны нулю. Для удобства мы разбили световые взаимодействия на два разных термина. Мы называем термин «поверхностное отражение» «зеркальным», а термин, возникающий в результате преломления, поглощения, рассеяния и повторного преломления, мы называем «рассеянным». Расщепление на рассеянное и зеркальное

Однако это довольно большое предположение. Для большинства непрозрачных материалов это предположение в порядке и не слишком отличается от реальной жизни. Однако для материалов с любой прозрачностью это предположение не выполняется. Например, молоко, кожа, мыло и т. Д.

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

Поэтому художник моделирует цвет материала, давая нам функцию ослабления материала, то есть то, как материал будет поглощаться светом. В нашей упрощенной диффузной / зеркальной модели это может быть представлено двумя цветами: диффузным цветом и зеркальным цветом. Еще до того, как использовались физические материалы, художник произвольно выбирал каждый из этих цветов. Однако должно показаться очевидным, что эти два цвета должны быть связаны. Вот где появляется цвет альбедо. Например, в UE4 они рассчитывают диффузный и зеркальный цвет следующим образом:

DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)

где Metallic равен 0 для неметаллов и 1 для металлов. Параметр «Specular» контролирует зеркальность объекта (но обычно он составляет 0,5 для 99% материалов).

RichieSams
источник
1
Почему падающий луч разделяется после отражения / преломления? Если свет - это частица, значит ли это, что эта частица рекурсивно расщепляется? И если свет - это волна, значит ли это, что она расщепляется по частоте (но в этом случае, почему она раскалывается после второго / третьего / и т.д. удара)?
nikitablack
5
Частица не расщепляется. Скорее изображения показывают потенциальные пути, которые это могло бы взять.
RichieSams
2
Многие частицы попадают (почти) в одно и то же место под (почти) одним и тем же углом. Для каждой выходящей частицы есть (обычно) частица, которая вошла. Это означает, что усредненный пучок частиц под определенным углом на определенном месте разделяется на несколько (много) отражений.
фрик с трещоткой
1
Отличный ответ проливает свет на большинство моих вопросов. Почему зеркальная часть неметаллов бесцветна и не подвержена воздействию альбедо? Как и где поляризация входит в игру?
Дэвид Кури
1
«Наблюдаемый цвет материала - это свет, который не поглощается». На этом этапе, возможно, стоит упомянуть, есть ли распространенные материалы, которые не очень хорошо представлены RGB? обсуждение, как флуоресцентные материалы приходят на ум.
Симон Ф
23

Я действительно задавался вопросом именно об этом несколько дней назад. Не найдя никаких ресурсов в графическом сообществе, я на самом деле подошел к физическому факультету в моем университете и спросил .

Оказывается, мы, люди графики, верим в ложь.


Во-первых, когда свет попадает на поверхность, применяются уравнения Френеля. Пропорции отраженного / преломленного света зависят от них. Вы, наверное, знали это.

Там нет такого понятия, как "зеркальный цвет"

Возможно, вы не знали, что уравнения Френеля меняются в зависимости от длины волны, потому что показатель преломления зависит от длины волны. Разница относительно мала для диэлектриков (дисперсия, кто-нибудь?), Но может быть огромной для металлов (я предполагаю, что это связано с различными электрическими структурами этих материалов).

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

Там нет такого понятия, как "рассеянное отражение"

Как говорит Нати Хоффман в своем выступлении, связанном с другим ответом, это действительно приближение к рассеянному подповерхностному рассеянию.

Металлы пропускают свет

Нати Хоффман ошибается (точнее, упрощает). Свет не сразу поглощается металлами. На самом деле он довольно легко пройдет сквозь материалы толщиной в несколько нанометров. (Например, для золота требуется 11,6633 нм, чтобы ослабить 587,6 нм (желтый) наполовину.)

Поглощение, как и в диэлектриках, обусловлено законом Бера-Ламберта. Для металлов коэффициент поглощения просто намного больше (α = 4πκ / λ, где κ - мнимая составляющая показателя преломления (для металлов ~ 0,5 и выше), а λ дается в метрах ).

Эта передача (или, точнее, SSS, которую она производит) на самом деле ответственна за значительную часть цветов металлов (хотя это правда, что во внешности металлов преобладает их зеркальное отражение).

imallett
источник
3
Спасибо! Я знал только упрощения. Эти дополнительные детали потрясающие
RichieSams
1
Это увлекательный ответ. Не могли бы вы уточнить / связать аббревиатуру SSS, пожалуйста?
Трихоплакс
@trichoplax Спасибо! SSS == подповерхностное рассеяние.
Ималлетт
Спасибо :) Если вы укажете это в вопросе, он выживет после удаления комментариев (которые не гарантированно будут долгосрочными). Я отредактировал ссылку и текст при наведении, который, надеюсь, оставит вашу презентацию без изменений.
Трихоплакс
2
Хотя я ценю педантичность этого ответа. Подповерхностное рассеяние считается эффектом масштаба в миллиметрах, в то время как на молекулярных диапазонах все проходит поверхность в некоторой степени. Но основное ограничение заключается в том, что мы обычно учитываем эффекты масштаба в миллиметрах и пытаемся абстрагировать более низкие уровни в качестве статистических моделей. Следовательно, микрометр равен сразу, поскольку большинство пикселей видят гораздо большую площадь, чем эта. То же самое относится и к цвету, который не существует в физике так же, как это
делают