Концентрация потенциально активных микрограней в функции нормального распределения

Я пытаюсь понять модель микрограней Кука-Торренса и в настоящее время застрял на функции нормального распределения D (будь то Бекманн, Блинн-Фонг или GGX). Некоторые интернет-ресурсы утверждают, что D — это доля нормалей микрограней M, совпадающих с нормалью к поверхности N, а D – доля, между которыми она лежит. [0,1]. 1, 2

Однако после некоторых исследований я узнал, что D — это концентрация M, совмещенная с N. 3, 4

Это значение концентрации (которое после некоторых тестов может доходить до 32 и даже выше) мне кажется чем-то зловещим.

Что именно можно прочитать из такого ненормированного значения?

Может ли это быть связано с долей выровненных M и N?

Или есть что-то простое, что я пропускаю?


person Clutterhead    schedule 08.12.2019    source источник
comment
Это функция распределения, используемая в интеграле. Таким образом, одна выборка этой функции представляет собой не прямую дробь, а дифференциальное значение с единицей измерения one per steradian. Это связано с тем, что вся функция должна интегрироваться до 1,0 по полушарию. И на самом деле, если моделируемая поверхность является идеальным зеркалом, эта функция будет дельта-функцией Дирака с единственным бесконечно тонким пиком, имеющим бесконечно большое значение. См., например: reedbeta.com/blog/hows-the-ndf -действительно определенный   -  person Kai Burjack    schedule 08.12.2019


Ответы (1)


Чтобы уточнить мой комментарий выше как потенциальный ответ на этот вопрос:

Вы правы в том смысле, что NDF дает статистическую вероятность того, что нормаль микроповерхности M точно совпадает с N (где точно означает: относительно бесконечно малого телесного угла вокруг N и M).

Таким образом, NDF представляет собой функцию распределения (в более широком смысле «обобщенную функцию») с единицей измерения one over steradians. Это означает, что вы получаете значение безразмерной дроби, когда вы умножаете значение функции на телесный угол. И здесь в игру вступает интеграция.

Потому что то, для чего NDF в конечном итоге используется, заключается в уравнении визуализации для определения доли света, отражаемого микрогранями в пределах дифференциального телесного угла через M, где M — полувектор между двумя другими векторами V_o и V_i и где один из этих двух векторов определяется как «исходящее направление» к принимающей дифференциальной поверхности, а другой - как «направление входящего света». Мы будем использовать w_o = исходящее и w_i = входящее направление, но из-за взаимности это действительно не имеет значения.

Когда мы решаем уравнение рендеринга, мы должны интегрировать по всей полусфере точки поверхности, которую мы хотим затенить (т. е. чью яркость мы хотим вычислить вдоль исходящего направления w_o), чтобы учесть весь свет, который потенциально будет отражаться от этой поверхности. точка вдоль исходящего направления w_o. Для этого нам нужно знать «излучение» этой точки. И чтобы получить это, мы оцениваем BRDF для всех возможных направлений входящего света w_i, суммируем и усредняем их вклады.

Если бы мы действительно выбрали все бесконечное число w_i направлений для заданного w_o направления и запросили NDF для каждого такого направления и усреднили косинусно-взвешенные результаты NDF, результат всегда был бы точно 1.0, потому что, если мы рассматриваем NDF только как потенциальное с учетом BRDF, весь исходящий свет вдоль w_o должен исходить откуда-то при отражении от поверхности.

И из-за взаимности Гельмгольца мы можем перефразировать это в обратном порядке, сказав: при фиксации w_i направления (так что учитывается только одно направление, откуда исходит свет) и интегрировать по всем возможным исходящим направлениям w_o и снова оценили и усреднили косинусно-взвешенную NDF, результат снова будет точно 1.0. Потому что, когда мы снова рассматриваем только NDF в BRDF, входящий свет всегда будет отражаться куда-то и не теряться.

Итак, после написания всего этого, что на самом деле означает один образец функции NDF? Вкратце: это означает, что вы не интегрируете по всем дифференциальным телесным углам и не усредняете результаты, а берете только одну выборку для одного направления и объявляете это как результат вашего интеграла (который вы вычислили только с одной выборкой). Таким образом, вы в основном вычислили сумму Римана с одной выборкой.

Или, другими словами: простая выборка NDF в одном месте не имеет правдоподобного физического смысла/результата. Я надеюсь, что это проясняет некоторые неизвестные.

На самом деле это был мой первый серьезный ответ на StackOverflow, и я знаю, что определенно смогу улучшить его в будущем! Спасибо! :)

person Kai Burjack    schedule 09.12.2019
comment
кстати: math.stackexchange.com или, скорее, computergraphics.stackexchange .com гораздо лучше подходит для такого рода вопросов. - person Kai Burjack; 09.12.2019
comment
Спасибо! Это действительно прояснило некоторые неизвестные. PS: да, эти сайты кажутся более подходящими, я даже сейчас не думал об обмене компьютерной графикой. обязательно отпишусь там в будущем - person Clutterhead; 11.12.2019