Open-source

NVIDIA NRD — библиотека временного шумоподавления трассировки лучей

Обзор по документации проекта · Проверено

NVIDIA NRD — изображение проекта

NVIDIA Real-Time Denoisers (NRD) — библиотека для шумоподавления сигналов, ориентированная на трассировку лучей с одним лучом на пиксель. Она предназначена для разработчиков игр и профессиональных приложений визуализации, которым требуется улучшить качество изображения за счёт удаления шума при динамическом и статическом освещении. NRD используется в игровых проектах и приложениях профессиональной визуализации.

Возможности и состав проекта

NRD предлагает три алгоритма шумоподавления: REBLUR для рекуррентного размытия, RELAX, разработанный для RTXDI, и SIGMA для теней от различных источников света. Библиотека использует G-буферы (нормали, шероховатость, глубина и векторы движения) для обработки непрозрачных поверхностей и поддерживает различные типы сигналов, включая диффузное и зеркальное излучение, а также окклюзию. NRD не предназначена для объёмных эффектов или прозрачности.

Начало работы и требования

NRD распространяется в виде исходного кода и готовой библиотеки, что позволяет интегрировать её в движки, использующие D3D12, Vulkan или D3D11. Для сборки требуется CMake 3.30+. Процесс включает клонирование проекта, инициализацию подмодулей и генерацию проекта с помощью CMake или специальных скриптов для Windows и Linux. NRD не делает вызовов графического API, приложение должно самостоятельно выполнять вызовы Dispatch.

Ограничения и выбор сценария

NRD обрабатывает входные сигналы и G-buffer, но не рисует сцену и не выполняет вызовы графического API вместо движка. Ошибки глубины, нормалей и векторов движения могут давать шлейфы или потерю деталей. Для прозрачности и объёмных эффектов описанный основной режим не подходит. Разделяйте сборку библиотеки, интеграцию NRI и собственное подключение к API; качество и бюджет GPU нужно оценивать на динамических сценах своего приложения.

Лицензия и условия использования

В проверенном LICENSE указан NVIDIA RTX SDKs License. Он отдельно регулирует использование SDK, модификацию примеров и распространение встроенных компонентов. Это не MIT или Apache-2.0; перед включением NRD в приложение нужно сверить полные условия и дополнительные соглашения зависимостей.

Источники и документация