3) Третий проход вычисляет вторичный отраженный свет. Подход аналогичен применяемому в втором проходе, но вместо источников прямого света используется сэмплы из посчитанных проб. Грубо говоря, в глобальном освещении у нас каждая поверхность излучает отраженный свет, на предыдущем шаге мы это излучение посчитали и теперь можем использовать. Для выборки мы используем экспоненциальный паттерн чтобы проверить, сколько отраженного света получено пробой. Здесь мы пускаем случайные лучи во все стороны от поверхности и считываем свечение от той пробы в которую попали. Максимальная длина луча на каждой итерации удлиняется экпоненциально. Чем больше у нас итераций и лучей, тем меньше шума.
Как и во втором проходе, SDF используется для трассировки и проверки перекрытия, а окончательный вклад вычисляется с помощью квадратичного рассеивания. После этого шага мы получаем немного шумную карту свечения которая выглядит примерно так:
Господи, годнота то какая!
Внезапно, геймдев подсайт еще жив.
Красота!
Спасибо)
Интересно, здесь тот же подход используется? https://www.youtube.com/watch?v=o2kgW2TBpUo
Я тоже подписан на автора, но к сожалению не знаю как именно у него устроен расчет GI, но думаю похитрее чем у меня) Хотя бы потому что я этим начал заниматься 2 месяца назад, а автор этого канала насколько мне известно ответственен за написание рендерера в Path of Exlile.
сложно и ничего не понятно, но очень интересно)
Если не понятно – спрашивай)