Как применить выборку света MIS к нескольким источникам света?

Я реализую трассировщик пути в OpenGL (с использованием вычислительных шейдеров). Я портирую код трассировки лучей LWJGL в C++ OpenGL.

В коде учебника 4_2 LWJGL по трассировке лучей есть выборка MIS "One Sample", но есть только один источник света для выборки.

Итак, что делает LWJGL, у него есть PROBABILITY_OF_LIGHT_SAMPLE. Он генерирует случайное число в [0,1]. Если это меньше PROBABILITY_OF_LIGHT_SAMPLE, то он делает выборку из одного прямоугольного источника света и вычисляет light_weight = light_pdf * PROBABILITY_OF_LIGHT_SAMPLE

Если это больше, чем PROBABILITY_OF_LIGHT_SAMPLE, тогда он делает выборку из brdf и вычисляет brdf_weight = brdf_pdf * (1-PROBABILITY_OF_LIGHT_SAMPLE)

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

0 ответов

Другие вопросы по тегам