Любой, кто хоть раз фотографировал с помощью мобильного телефона или цифровой камеры, знаком с так называемыми «шумами» (бесцветные пятна), которые делают снимок не очень четким и резким.
Избавиться от подобной «каши» можно с помощью специальных настроек и дополнительного освещения. Упомянутый «шум» (случайное изменение яркости и цвета, которые не являются частью исходного изображения) нередко встречается и в компьютерной графике.
Удаление этого самого «шума» называют шумоподавлением (для этого используются специальные алгоритмы).
Что такое шумоподавление?
В компьютерной графике изображения могут состоять как из полезной информации, так и из шума. Идеальный результат шумоподавления — это четкое изображение только с полезной информацией.
Чтобы убрать шум без влияния на визуальные детали, необходимо обратить внимание на следующие типы сигналов:
- Diffuse — рассеянное освещение, отражающееся во всех направлениях
- Освещение (и тени), отраженное в определенном направлении
- Солнечный свет, тени и любой другой видимый источник света
При трассировке лучей в реальном времени часто используется только один луч на пиксель или даже меньше.
Как работает шумоподавление?
Шумоподавление изображения обычно основано на трех методах:
- пространственная фильтрация
- временное накопление (temporal accumulation)
- машинное обучение
Пространственная фильтрация выборочно изменяет части изображения путем повторного использования похожих соседних пикселей. Преимущество такого метода заключается в том, что он не создает временной задержки.
Однако пространственная фильтрация добавляет в изображение мерцание и визуальное несовершенство (скажем, размытость).
Временное накопление (temporal accumulation) повторно использует данные из предыдущего кадра, чтобы определить, есть ли в текущем кадре какие-либо артефакты или визуальные аномалии, которые можно исправить. Важно знать, что временное накопление не размывает изображение.
Машинное обучение использует нейронную сеть для восстановления сигнала. Она обучается благодаря различным зашумленным и эталонным сигналам.
Решение NVIDIA Real-Time Denoisers (NRD) делает методы шумоподавления более доступными для разработчиков. NRD — это библиотека пространственно-временного шумоподавления, не зависящая от интерфейсов прикладного программирования. Она предназначена для работы с низким количеством лучей на пиксель в режиме реального времени.
Данная опция применяется для шумоподавления в играх Dying Light 2 и Hitman III.
Шумоподавители, включенные в NRD:
- ReBLUR — основан на идее самостабилизирующегося повторяющегося размытия и предназначен для работы с зеркальными сигналами и низким количеством лучей
- SIGMA — быстрый шумоподавитель теней (он поддерживает тени от любого источника света, например, от солнца и местного освещения)
- ReLAX — сохраняет детали освещения, созданные фреймворком NVIDIA RTX Direct Illumination