Быстрое приблизительное сглаживание
Быстрое приблизительное сглаживание ( FXAA ) — это экранного пространства, алгоритм сглаживания созданный Тимоти Лоттесом из Nvidia . [1]
FXAA 3 выпускается под лицензией общественного достояния . Более поздняя версия, FXAA 3.11, выпускается под лицензией BSD из трех пунктов. [2]
Описание алгоритма
[ редактировать ]- Входными данными являются визуализированное изображение и, возможно, данные яркости. [3]
- Получите данные о яркости. [3] Эти данные могут быть переданы в алгоритм FXAA на этапе рендеринга в виде альфа-канала, встроенного в изображение, подлежащего сглаживанию, рассчитанного на основе визуализированного изображения или аппроксимированного с использованием зеленого канала в качестве данных яркости. [3]
- Найдите высококонтрастные пиксели с помощью фильтра верхних частот, который использует данные яркости. [3] Обнаруженные низкоконтрастные пиксели исключаются из дальнейшего изменения с помощью FXAA. [3] Фильтр верхних частот, исключающий пиксели с низкой контрастностью, можно настроить для баланса скорости и чувствительности. [3]
- Используйте контраст между соседними пикселями, чтобы эвристически найти края и определить, расположены ли края в горизонтальном или вертикальном направлении. [3] Направление смешивания пикселя будет перпендикулярно обнаруженному направлению края этого пикселя. [3]
- Рассчитайте один коэффициент смешивания для высококонтрастного пикселя, проанализировав данные яркости в сетке пикселей 3x3, где рассматриваемый пиксель является центральным пикселем. [3]
- Выполните поиск вдоль обнаруженного края, чтобы определить, как долго длится этот край и в каком направлении движется фактический край, когда обнаруженный горизонтальный или вертикальный край заканчивается, чтобы принять во внимание фактическое направление края и вычислить второй коэффициент смешивания. [3] Этот шаг можно настроить для повышения качества, увеличив разрешение поиска и длину поиска, прежде чем поиск конца ребра прекратится, или для большей скорости, уменьшив оба параметра. [3]
- Смешайте пиксель, используя выбранное направление смешивания и максимальное значение обоих рассчитанных коэффициентов смешивания. [3]
Сравнение
[ редактировать ]Основное преимущество этого метода перед традиционным пространственным сглаживанием состоит в том, что он не требует больших вычислительных мощностей . Это достигается за счет сглаживания нежелательных неровных краев (« зубцов »). [4] как пиксели , в зависимости от того, как они выглядят на экране, а не анализировать саму 3D-модель , как при обычном пространственном сглаживании. [1] Поскольку он не основан на реальной геометрии , он будет сглаживать не только края между треугольниками, но и края внутри текстур с альфа-смешением или те, которые возникают в результате эффектов пиксельных шейдеров , которые невосприимчивы к эффектам мультисэмплового сглаживания (MSAA). . [5]
Недостатками являются то, что высококонтрастные текстурные карты размыты, что FXAA необходимо применять перед рендерингом элементов HUD игры, чтобы это не повлияло и на них, и что полигональные детали размером меньше одного пикселя, которые могли бы быть захвачены и отображены с помощью MSAA и SSAA, не могут быть обработаны. захватываться и обрабатываться только с помощью FXAA.
См. также
[ редактировать ]- Морфологическое сглаживание
- Мультисэмпловое сглаживание
- Анизотропная фильтрация
- Временное сглаживание
- Глубокое обучение сглаживанию
- Пространственное сглаживание
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Лоттес, Тимоти (февраль 2009 г.). «FXAA» (PDF) . NVIDIA . Проверено 29 сентября 2012 г.
- ^ «opengl — Использование NVidia FxAA в моем коде: какова модель лицензирования?» . Переполнение стека .
- ^ Перейти обратно: а б с д и ж г час я дж к л Флик, Джаспер. «FXAA: Сглаживание пикселей» . Проверено 21 июля 2020 г.
- ^ Ван, Джеймс (19 марта 2012 г.). «FXAA: сглаживание на скорости деформации» . NVIDIA. Архивировано из оригинала 21 февраля 2019 года . Проверено 3 января 2013 г.
- ^ Этвуд, Джефф (7 декабря 2011 г.). «Быстрое приближенное сглаживание (FXAA)» . Кодирующий ужас. Архивировано из оригинала 31 января 2014 года . Проверено 30 сентября 2012 г.