Очередная технология, используемая в NS Project X, которую обычно не используют другие мододелы - шумоподавление для Ambient occlusion.
В NS Project X я (Deathman на связи) решил использовать следующий подход и предлагаю его к использованию другим.
Сам эффект Ambient occlusion я считаю в разрешении ниже, чем разрешение экрана, чтобы выиграть в производительности какой-то процент.
В качестве шума для случайного смещения выборки у самого эффекта AO я использую синий шум из текстуры, что намного быстрее его расчета в реальном времени при помощи различных сложных формул, который я не просто получаю из этой текстуры, а дополнительно двигаю при каждой выборке, чтобы для каждого пикселя, в каждой итерации расчета Ambient occlusion смещение выборки на 100% было случайным, что дает качественный эффект с максимально плотным шумом.
Далее, начинается шумоподавление.
В качестве шумоподавления я использую разделенный на два прохода, фильтр от X-Ray Engine 2.0.
Суть фильтра заключается в том, что двумя проходами мы размываем эффект вертикально и горизонтально, но не просто размываем - а используем для этого буфер глубины сцены, что даёт не просто мыло, а умное мыло, на которое можно смотреть без боли.
Затем я поднимаю разрешение эффекта до разрешения экрана, используя дополнительно алгоритм апскейла, найденный мной на ShaderToy, чтобы повысить четкость эффекта, можно и не использовать апскейлинг, но так результат выходит намного лучше.
Другие мои посты на тему графики можно посмотреть в моей группе - NS Gaming
Ну и также если вы хороши хоть в чем-то и хотели бы принять участие в разработке проекта - напишите мне здесь или в ВК