Как применить выборку света 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?