Как свет на самом деле взаимодействует с различными материалами? - Физически обоснованный рендеринг (PBR)

Я занимаюсь компьютерной графикой в ​​области физического рендеринга, и недавно я искал в сети, чтобы выяснить, как физический физический рендеринг (PBR). Суть вопроса лежит где-то между чистой физикой и чистой графикой, поэтому я надеюсь найти здесь кого-то знакомого с графикой.

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

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

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

  2. Проходящий свет может распространяться дальше для преломляющих поверхностей или может быстро поглощаться, как в случае с металлами. Прошедший свет может также повторно появляться из других положений. Это то, что мы в графике называем «диффузным отражением» . Аналогом является «зеркальное отражение» (свет просто отражается от поверхности. Обратите внимание, что отражение не обязательно должно быть в зеркальном направлении).

  3. В графике мы обычно определяем цвет объекта через триплеты RGB. Я знаю, что это неточно, однако, я буду двигаться дальше с этим предположением. Я думаю, что уравнения Френеля косвенно определяют эту тройку RGB для разных поверхностей? Поскольку отражение Френеля различно на разных длинах волн, то если мы будем делать выборку на 3 основных длинах волн R, G, B, мы фактически получим количество отражений для каждой длины волны, что, в свою очередь, является цветом объекта? Однако цвет объекта не должен зависеть от направления взгляда, что явно не соответствует моему предположению. Кто-нибудь может прояснить этот момент?

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

    У нас есть 2 параметра, которые мы обозначаем как отражательная способность поверхности. Мы говорим, что поверхность может отражать свет на 60 % диффузно (то есть 60 % пропускаются, а затем появляются снова), а 40 % отражается зеркально. Это не всегда должно в сумме равняться 1, так как часть энергии также теряется в виде тепла. Обозначим оба этих параметра как К г и К с (диффузное и зеркальное отражение).

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

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

  5. Последнее, но не менее важное, это случай отражения.

    В PBR у нас обычно есть модели на основе микрограней, согласно которым каждая поверхность имеет микровыпуклости. Отсюда следует первый важный параметр для PBR — шероховатость/гладкость . Этот параметр определяет, насколько зеркальное отражение сконцентрировано в одном направлении.

    (5a) В пункте 2 я предположил, что зеркальное отражение означает, что свет просто рассеивается от поверхности, не обязательно в зеркальном направлении. Это правда? Или свет всегда отражается в зеркальном направлении, просто из-за этих микрограней он не концентрируется?

    (5b) Это наводит меня на мысль, что отражения определяются двумя параметрами. Насколько гладкая поверхность и насколько свет отражается от поверхности (зеркально). Существуют ли какие-либо другие параметры, определяющие, почему мы видим отражения на поверхностях различных объектов?

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

Ответы (2)

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

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

Цвет света, отражаемого объектом, безусловно, меняется в зависимости от цвета источника света и угла обзора, однако человеческий мозг учится принимать это во внимание и пытается получить представление о собственном цвете объекта, который при большинство условий с относительно белым/широкоспектральным источником света вполне успешны. Скажем, при оранжевом источнике света бывает трудно отличить оранжевый объект от белого. Если наблюдатель выровняется с углом, под которым отражается большая часть света от источника света, собственный цвет объекта может быть подавлен цветом источника, и они могут наблюдать изображение источника.

По пункту 4) Это тот же эффект, что и у Френеля, но вы моделируете Френеля на шероховатой поверхности, на которой свет с одного и того же направления теперь падает на разные части поверхности под разными углами падения.

Пункт 5а) звучит правильно, что свет всегда отражается в зеркальном направлении, но это меняется из-за «микрограней».

5b) Да, обычно задача состоит в том, чтобы получить максимально точную модель с минимальным количеством параметров, чтобы максимизировать производительность. На самом деле нет предела тому, сколько деталей может быть применено, например, моделирование отдельных фотонов и их квантового взаимодействия со средой — я думаю, что это было бы слишком много для ваших целей. Однако вы можете захотеть учесть атмосферное рассеяние и так называемый «окружающий свет», потому что его моделирование световыми лучами довольно интенсивно.

Когда вы говорите правильно о пункте 5а), вы имеете в виду, что отраженные лучи не обязательно должны быть в зеркальном направлении? или это наоборот?
Также просто хотел добавить это, вы можете знать или не знать, но мы на самом деле моделируем окружающий свет через световые лучи здесь, в PBR :) Я не знаю, знаете ли вы это уже. Это называется глобальным освещением, и, как вы сказали, это чертовски дорогой процесс.
Уточненный пункт 4. Думаю, меня не должно это удивлять, учитывая возрастающие возможности процессора и, возможно, более того графического процессора.
Я отметил это как ответ и добавил ссылку. Это статья Нати Хоффман, в которой более подробно обсуждается основное взаимодействие света с материей, представленная на SIGGRAPH. Это очень помогло мне и поможет любому, кто споткнется здесь. Пожалуйста, примите редактирование. Спасибо
РЕДАКТИРОВАНИЕ GALICKGUNNERS (за которое не проголосовали) было следующим: - Для людей с похожими вопросами и сомнениями [эта] [1] статья устраняет большинство из них. Это презентация/статья Нати Хоффман, описывающая взаимодействие света с материей с точки зрения физики и графики. В случае, если ссылка не работает, просто выполните поиск «Предыстория: физика и математика затенения Нэти Хоффман» [1]: pdfs.semanticscholar.org/e8e9/…

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

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

В частности, рассмотрите луч желтого света, который падает на ваш материал. Должен ли он разделиться? Должен ли он менять цвет при отражении и прохождении? Смотря как! Если это спектрально чистый желтый цвет, то его цвет не изменится при взаимодействии, но если луч представляет собой смесь красного и зеленого света, а красная и зеленая составляющие отражаются по-разному, то отраженный луч будет другого цвета. . Однако, поскольку ваша модель луча представляет собой всего лишь триплет RGB, вы не можете сказать, что лежит в основе реальности, и вам приходится вводить информацию, которой у вас нет.

Теперь, как вы сказали в

Я знаю, что это неточно, однако я продолжу с этим предположением,

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

насколько физичен рендеринг на физической основе,

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

Спасибо, у нас действительно есть отдельная ветвь рендеринга в PBR, которая является спектральным рендерингом. Там мы учитываем несколько длин волн, однако в неспектральном рендеринге, которым я занимаюсь, мы просто принимаем модель RGB. Также что касается пунктов 1 и 2, я думал, что первые два более тесно связаны с физикой, чем другие :)
Пункт 1 мне кажется правильным. Пункт 2 выглядит правильным, если вы не путаете зеркальное отражение с поглощением и переизлучением.
Хорошо насчет пункта 5а. Согласно Википедии, зеркальное отражение всегда направлено в сторону зеркала. Мой вопрос, возможно ли, что свет может отражаться от поверхности, но не в зеркальном направлении? т.е. угол падения не равен углу отражения. Раньше мы знали, что это относится к шероховатым поверхностям, однако, как я уже сказал, отражение световых лучей не в зеркальном направлении для шероховатых поверхностей на самом деле происходит из-за поглощения и переизлучения, по крайней мере, я слышал. Это правда?
Как я уже сказал, я коснусь только вашего пункта 3. У меня нет ни технических знаний, ни времени копаться в вашем обширном тексте, чтобы выйти за его пределы.