Дорожка трассировки Кук-Торранс BRDF

27

- Извините за длинный пост, но я предпочитаю делать так, потому что « Дьявол кроется в деталях » :)

Я пишу трассировщик пути с нуля, и он отлично работает для идеально диффузных (ламбертовских) поверхностей ( т. Е. Тест печи показывает - по крайней мере визуально), что он энергосберегающий, и отрисованные изображения соответствуют изображениям, созданным с помощью рендерера Mitsuba для того же самого параметры). Сейчас я реализую поддержку зеркального термина оригинальной модели микроснимков Cook-Torrance, чтобы визуализировать некоторые металлические поверхности. Тем не менее, кажется, что этот BRDF отражает больше энергии, чем получено. Смотрите примеры изображений ниже:

Мицуба эталонное изображение.

Изображение выше: эталонное изображение Мицубы (предполагается, что оно правильное): трассировка пути с прямой выборкой света, важная выборка по полушарию, максимальная длина пути = 5, 32 многослойных спп, коробочный фильтр, шероховатость поверхности = 0,2, RGB.

Рендеринг изображения

Изображение выше: Фактическое визуализированное изображение: трассировка пути методом грубой силы, выборка из равномерного полушария, максимальная длина пути = 5, 4096 многослойных видов на квадратный дюйм, коробочный фильтр, шероховатость поверхности = 0,2, RGB. Несмотря на некоторые различия в настройках рендеринга, ясно, что визуализированное изображение не будет сходиться к показанной ранее ссылке.

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

Прежде чем углубляться в мельчайшие подробности, обратите внимание, что средство визуализации довольно простое: 1) реализует только алгоритм прямой трассировки грубой силы - нет прямой выборки света, нет двунаправленной трассировки пути, нет MLT; 2) все выборки в полушарии выше точки пересечения равномерны - выборка вообще не важна, ни для диффузных поверхностей; 3) лучевой путь имеет фиксированную максимальную длину 5 - русская рулетка отсутствует; 4) излучение / отражательная способность сообщаются через кортежи RGB - нет спектральной визуализации.

Микрофас модель Cook Torrance

Теперь я попытаюсь построить путь, по которому я пошел, чтобы реализовать выражение для оценки зеркального BRDF. Все начинается с уравнения рендеринга , где р есть точка пересечения на поверхности , w o - вектор просмотра, w i

Lо(п,весо)знак равноLе+ΩLя(п,веся)ер(весо,веся)созθdω
пвесовеся- световой вектор, - исходящее излучение вдоль w o , L i - излучение, падающее на p вдоль w i, и cos θ = nw i .LовесоLяпwicosθ=nwя

Вышеупомянутый интеграл ( то есть член отражения уравнения рендеринга) можно аппроксимировать с помощью следующей оценки Монте-Карло гдеp- функция плотности вероятности (PDF), которая описывает распределение векторов выборкиwk.

1Nk=1NLi(p,wk)fr(wk,wo)cosθp(wk)
pwk

Для фактического рендеринга должны быть указаны BRDF и PDF. В случае зеркального члена модели Кука-Торранса я использую следующий BRDF где D=1

fr(wi,wo)=DFGπ(nwя)(Nвесо)
F=cspec+(1-cspec)(1-w
Dзнак равно1м2(Nчас)4ехр((Nчас)2-1м2(Nчас)2)
G=min ( 1 , 2 ( nh ) ( n ⋅) ш о )
Fзнак равносsпес+(1-сsпес)(1-весячас)5
В приведенных выше уравненияхh=wo+wi
гзнак равномин(1,2(Nчас)(Nвесо)весочас,2(Nчас)(Nвеся)весочас)
иcspec- зеркальный цвет. Все уравнения, за исключениемF, были взяты из оригинальной статьи. F, также известное какприближение Шлика, является эффективным и менее точным приближением к фактическому члену Френеля.часзнак равновесо+веся|весо+веся|сsпесFF

Было бы обязательно использовать выборку важности в случае рендеринга гладких зеркальных поверхностей. Однако я моделирую только достаточно шероховатые поверхности ( ), поэтому я решил какое-то время придерживаться равномерной выборки (за счет более длительного времени рендеринга). В этом случае PDF имеет вид p ( w k ) = 1м0.2 Подставляя равномерный PDF и BRDF Кука-Торранса в оценку Монте-Карло (обратите внимание, чтоwiзаменяетсяслучайной величинойнаwk), я получаю 1

п(весК)знак равно12π
весявесК
1NΣКзнак равно1NLя(п,весК)(DFгπ(NвесК)(Nвесо))созθ(12π)
Теперь мы можем отменить и убрать суммирование, потому что мы снимаем только один случайный луч из точки пересечения. В итоге мы получаем 2 L i ( p , w k ) ( D F Gπ посколькуcosθ=
2Lя(п,весК)(DFг(NвесК)(Nвесо))созθ
, мы можем еще больше упростить его 2 L i ( p , w k ) ( D F Gсозθзнак равноNвесК
2Lя(п,весК)(DFгNвесо)

Итак, это выражение, которое я оцениваю, когда луч попадает на зеркальную поверхность, отражательная способность которой описана в BRDF Кука-Торранса. Это выражение, кажется, отражает больше энергии, чем получено. Я почти уверен, что с этим что-то не так (или в процессе деривации), но я просто не могу это определить.

1π

Любая помощь очень приветствуется! Спасибо!

ОБНОВИТЬ

D1πер14 и fr

DNевесзнак равно1πм2(Nчас)4ехр((Nчас)2-1м2(Nчас)2)
ерNевес(веся,весо)знак равноDFг4(Nвеся)(Nвесо)
π2Lя(п,весК)(DNевесFгNвесо)
Dер

ОБНОВЛЕНИЕ 2

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

Кристиан Пагот
источник
Не уверен, что вы все еще посещаете этот сайт, но у меня есть вопрос о вашем уравнении Френеля, и я разместил его здесь
PeteUK

Ответы:

12

в твоемж1πер : fr14

ерзнак равноDFг4(Nвеся)(Nвесо),
π2Lя(п,весК)(DFгNвесо),
Wolle
источник
141πзнак равноπ2
1/π
@Capagot Я думаю, что вам не хватает 1πD14ер1πD
π
@ Точно! На самом деле, я уже взглянул на статью, которую вы упомянули, но я этого не заметил! Я только что изменил свою реализацию для учета1πD14ер
13

Я публикую это для всех, кто интересуется путаницей между терминами 1π14 .

Семестр 1π является ошибкой из оригинальной ссылки Cook-Torrance.

На самом деле весь срок 14(Nωя) происходит от якобиана преобразования от отраженного телесного угла к нормальному телесному углу.

Согласно большинству работ, 14Термин впервые появился в [Торранс, 67] .

Для хорошего объяснения этого термина вы должны проверить [Nayar, 91] , приложение D. Вот изображение из той же бумаги:

dω'знак равноdωр4созθя'

Кроме того, Джо Стэм соглашается с Наяром 14 термин в [Stam 01, Модель освещения для слоя кожи, ограниченного шероховатыми поверхностями], приложение B.

Саму
источник