Suslik
Спасибо, я ценю твой вклад в уменьшение сосания Урхи.
Suslik
В общем, я откалибровал это говнище.
На картинках выше по теме проблема была в том, что я забыл умножить эмиссию на пи.
Я не делю прямое освещение на пи, чтобы запеканка соответствовала реалтайму. Значит надо умножать на пи все то, что не является источником прямого света — светящиеся и освещенные поверхности.
Заодно нашел тупейший баг в чтении фоновой кубмапы, который у меня уже год в коде, лол.
Eugene
> что я забыл умножить эмиссию на пи.
и зачем там пи?
innuendo
> и зачем там пи?
Потому что Lambertian BRDF для диффуза это 1/PI, а у меня 1.
Eugene
> для диффуза это 1/PI
суслик же сказал что не надо делить
А, нет, у меня походу в другом месте ошибка была. Забавно, что все эталоны выглядели идеально.
Suslik
Ты знаешь, какой эталон можно использовать для теста двойного bounce?
Одинарный отскок просто. Куб, у которого белый пол и светящиеся сцены. Или две перпендикулярные плоскости и свет под прямым углом на одну из них.
А вот двойной отскок... я так и не смог придумать.
Eugene
> А, нет, у меня походу в другом месте ошибка была
первый раз слышал что эмиссию нужно делить на пи
innuendo
Я до сих пор не понимаю, почему "правильный" вариант расходится на ~5 единиц цвета (рандом хреновый?), а "неправильный" вариант (который вообще треш, я оказывается два раза умножал на N.L в некоторых случаях) сходится идеально.
Eugene
думаю, у тебя просто где-то ещё один косяк, который компенсируется таким образом. повторюсь, что во вторичном освещении, ни делений, ни умножений на pi для диффузного света быть не должно. там будет 1/pi в BRDF, которая потом сокращается с pi в интеграле по полусфере.
Suslik
Ну вот у меня не осталось больше pi — только в расчете сферических гармоник умножение на 4пи, но оно там нужно. Все равно микроскопическое расхождение в эталонах есть. Может гаусс-блюр нарушает баланс энергии, хз.
Демо, использующее обновлённый рендер от Eugene
https://glprojects.itch.io/shooter
Пока не экспортировал лоды и нет окклюдеров. Так же работает только версия под windows.
протестировано, стабильно 60 FPS, ну иногда 52
Intel(R) Pentium(R) CPU G4400 @ 3.30GHz 3.31 GHz
1Gb NVidia GTX 780
16Gb RAM
Всё как на видео, ни одного тормоза, зависания или лага. Всё работает на столько плавно. что кажется будто играю в низкотребовательный Quake1. Мой комп давно бы умер на UE или Unity с такой картой.
Охрененно!