stringtranslate.com

Быстрое приблизительное сглаживание

Быстрое приблизительное сглаживание ( FXAA ) — это алгоритм сглаживания в экранном пространстве, созданный Тимоти Лоттесом из Nvidia . [1]

FXAA 3 выпущен под лицензией общественного достояния . Более поздняя версия, FXAA 3.11, выпущена под лицензией BSD из 3 пунктов. [2]

Описание алгоритма

  1. Входными данными являются визуализированное изображение и, опционально, данные яркости. [3]
  2. Получите данные о яркости. [3] Эти данные могут быть переданы в алгоритм FXAA с этапа рендеринга в качестве альфа-канала, встроенного в изображение для сглаживания, рассчитанного на основе рендеринга изображения или аппроксимированного с использованием зеленого канала в качестве данных о яркости. [3]
  3. Найдите высококонтрастные пиксели, используя фильтр верхних частот, который использует данные яркости. [3] Найденные низкоконтрастные пиксели исключаются из дальнейшего изменения FXAA. [3] Фильтр верхних частот, который исключает низкоконтрастные пиксели, можно настроить для баланса скорости и чувствительности. [3]
  4. Используйте контраст между соседними пикселями, чтобы эвристически находить края и определять, находятся ли края в горизонтальном или вертикальном направлении. [3] Направление смешивания пикселя будет перпендикулярно обнаруженному направлению края на этом пикселе. [3]
  5. Рассчитайте один коэффициент смешивания для пикселя с высокой контрастностью, проанализировав данные яркости в сетке пикселей 3x3, при этом рассматриваемый пиксель является центральным пикселем. [3]
  6. Поиск вдоль обнаруженного края, чтобы определить, как долго идет этот край и в каком направлении идет фактический край, когда обнаруженный горизонтальный или вертикальный край заканчивается, чтобы учесть фактическое направление края для расчета второго коэффициента смешивания. [3] Этот шаг можно настроить для повышения качества, увеличив разрешение поиска и то, насколько далеко идет поиск, прежде чем поиск конца края прекратится, или для повышения скорости, уменьшив оба параметра. [3]
  7. Смешайте пиксель, используя выбранное направление смешивания и максимальное значение обоих рассчитанных коэффициентов смешивания. [3]

Сравнение

Главное преимущество этого метода перед обычным пространственным сглаживанием заключается в том, что он не требует больших вычислительных мощностей . Он достигает этого путем сглаживания нежелательных зубчатых краев (« зубцов ») [4] как пикселей , в соответствии с тем, как они выглядят на экране, а не путем анализа самой 3D-модели , как при обычном пространственном сглаживании. [1] Поскольку он не основан на фактической геометрии , он сглаживает не только края между треугольниками, но и края внутри текстур с альфа-смешением или те, которые возникают в результате эффектов пиксельного шейдера , которые невосприимчивы к эффектам многовыборочного сглаживания (MSAA). [5]

Недостатки заключаются в том, что высококонтрастные текстурные карты размываются, что FXAA необходимо применять до рендеринга элементов HUD игры, чтобы не повлиять на них, и что полигональные детали размером менее одного пикселя, которые были бы захвачены и отрисованы с помощью MSAA и SSAA, не могут быть захвачены и отрисованы с помощью одного FXAA.

Смотрите также

Ссылки

  1. ^ аб Лоттес, Тимоти (февраль 2009 г.). «FXAA» (PDF) . NVIDIA . Проверено 29 сентября 2012 г.
  2. ^ "opengl - Использование NVidia FxAA ​​в моем коде: Какова модель лицензирования?". Stack Overflow .
  3. ^ abcdefghijkl Флик, Джаспер. "FXAA: Smoothing Pixels" . Получено 21 июля 2020 г. .
  4. Wang, James (19 марта 2012 г.). «FXAA: сглаживание на сверхсветовой скорости». NVIDIA. Архивировано из оригинала 21 февраля 2019 г. Получено 3 января 2013 г.
  5. Atwood, Jeff (7 декабря 2011 г.). "Быстрое аппроксимированное сглаживание (FXAA)". Coding Horror. Архивировано из оригинала 31 января 2014 г. Получено 30 сентября 2012 г.