Экранное сглаживание — Википедия
В этой статье может быть слишком много ссылок на другие статьи, и, возможно, их количество нужно сократить. |
Сгла́живание (англ. anti-aliasing) — технология, используемая в обработке изображений с целью сделать границы кривых линий более гладкими, убирая возникающие на краях объектов «зубцы». Впервые сглаживание было применено в 1972 году в Массачусетском технологическом институте в Architecture Machine Group, которая позже стала основной частью MIT Media Lab.
Основной принцип сглаживания
[править | править код]Основной принцип сглаживания — использование возможностей устройства вывода для показа оттенков цвета, которым нарисована кривая. В этом случае пиксели, соседние с граничным пикселем изображения, принимают промежуточное значение между цветом изображения и цветом фона, создавая градиент и размывая границу.
Применяется два варианта сглаживания:
- Общее сглаживание отрисовкой излишне крупного не сглаженного изображения с последующим уменьшением разрешения.
- Специализированные алгоритмы сглаживания, работающие на изображениях определённого типа (например, Алгоритм Ву для отрисовки отрезков).
Следует заметить, что сглаживание зависит от гаммы монитора. В частности, среднее между 0,2 и 0,8 — это не обязательно 0,5, а . Особенно это заметно на тонких узорах и тексте. Поэтому сглаживание наилучшего качества получается только тогда, когда известна.
Методы сглаживаний
[править | править код]Примечание: сглаживание влияет на фреймрейт (кол-во кадров в секунду) в зависимости от ПСП (пропускной способности памяти) видеокарты.
Традиционные методы
[править | править код]Также известен как Full-Screen Anti-Aliasing(FSAA) и часто заменяется термином даунскейлинг. Технически при правильной реализации они отличаются тем, что уменьшение масштаба применяется ко всему буферу кадра – 2D и 3D-элементам, в то время как SSAA/MSAA – это методы, применяемые только внутренне к 3D-элементам. В некоторых реализациях это может привести к меньшему влиянию на производительность и лучшей совместимости. Применяет общую формулу сглаживания к полноэкранным изображениям, уменьшая «эффект лестницы». По сравнению с отрендеренным изображением, прошедшим MSAA, изображение SSAA/FSAA будет выглядеть более гладким (в большей или меньшей степени в зависимости от конкретного типа используемого фильтра масштабирования). Реализовано на видеокартах Nvidia как OGSSAA (Ordered Grid Supersample Anti-Aliasing) и включается в следующих режимах с помощью Nvidia Profile Inspector: 2x1, 1x2, 2x2, 3x3, 4x4. В значительной степени был заменен менее ресурсоемкими методами из-за огромных затрат времени на кадр, но из-за лучшего результата, который он обеспечивает, некоторые игры по-прежнему используют его в качестве опции во внутриигровых настройках.
По сути, это «бюджетная» версия SSAA. Чтобы уменьшить нагрузку, которую SSAA/FSAA оказывает на систему, мультисэмплинг оптимизирует процесс, оценивая каждый пиксель только один раз, при этом настоящий суперсэмплинг происходит только на краях визуализируемого объекта и для значений глубины. Это приводит к аналогичному (но менее радикальному) улучшению визуального качества, одновременно снижая нагрузку на систему при рендеринге и уменьшении масштаба таких высоких разрешений. В первую очередь устраняет алиасинг геометрии; временной алиасинг и алиасинг от шейдерных эффектов, текстур и прозрачностей не затрагиваются.
Multi-Frame Anti-Aliasing (MFAA)
[править | править код]Эксклюзивно для видеокарт Nvidia на архитектуре Maxwell(GTX 750 (Ti),GeForce 900) и новее. Предназначен для использования совместно с MSAA для снижения влияния на производительность. Важно отметить, что MFAA не работает должным образом при кадровой частоте ниже 40к/с. Ниже этого порога MFAA вызывает размытие и нечеткость в движении. Возможно, также отключает списки команд драйвера D3D11, отключая многопоточный рендеринг (И, следовательно, производительность при упоре в ЦП очень сильно проседает).
Coverage Sampling Anti-Aliasing (CSAA)
[править | править код]Для CSAA требуется видеокарта Nvidia линейки GeForce 8000 и новее. Нацелено на дальнейшее снижение дополнительной нагрузки, которую MSAA оказывает на систему, при этом Nvidia утверждает, что изображение, отрендеренное с помощью CSAA, будет конкурировать с 8x-16x MSAA, при этом нагружая систему только сопоставимой с 4x MSAA. Это достигается за счет уменьшения количества настроек, определяемых каждым образцом (путем создания нового образца для покрытия), при этом увеличивая общее количество образцов. Видеокарты Nvidia начиная с архитектуры Maxwell (GTX 750 (Ti),GeForce 900) не поддерживают данную технологию сглаживания. Возможно, это было сделано в пользу более лучшего метода MFAA.
Quality Coverage Sampling Anti-Aliasing (QCSAA)
[править | править код]QCSAA - более лучшая версия CSAA, улучшенная за счёт использования вдвое большего количества семплов для анализа.
Quincunx Super Anti-Aliasing (QSAA)
[править | править код]Метод, эксклюзивный для видеокарт Nvidia.Несколько улучшает стандартный MSAA. Например, 2x QSAA примерно соответствует 3x MSAA по качеству.
Enhanced Quality Anti-Aliasing (EQAA)
[править | править код]Эксклюзивно для видеокарт AMD начиная с HD 6000 на архитектуре Terascale 3. AMD утверждает, что обеспечивает улучшенное качество сглаживания по сравнению со стандартными режимами MSAA за счет добавления большего количества образцов покрытия на пиксель, но при этом сохраняет то же количество образцов цвета/глубины/трафарета для достижения лучшего качества сглаживания по сравнению со стандартными режимами MSAA.
Sparse Grid Super-Sampling Anti-Aliasing (SGSSAA)
[править | править код]Современная версия SSAA. Эксклюзивно для видеокарт Nvidia. Существует в двух формах: FSSGSSAA (Full Scene Sparse Grid Supersampling Anti-Aliasing, чаще называемое просто SGSSAA) и TrSGSSAA (Transparency Sparse Grid Supersampling Anti-Aliasing, чаще называемое TrSSAA). Версия TrSSAA включается просто путем установки ее в панели управления Nvidia. Для полной сцены требуется установить Antialiasing - Mode на Override любых настроек приложения, Antialiasing - Setting на 2x 4x или 8x мультисэмплинг и Antialiasing - Transparency на то же значение, что и Antialiasing - Setting. Обратите внимание, что игре может потребоваться определенная строка совместимости, требуется Nvidia Profile Inspector.
Hybrid Sampling Anti-Aliasing (HSAA)
[править | править код]Является комбинацией SSAA и MSAA. Пользователи Nvidia могут использовать Nvidia Profile Inspector, чтобы принудительно включить версию, использующую SSAA с упорядоченной сеткой и обычный MSAA в некоторых играх (режимы с расширением xS) Иногда работает в случаях, когда SGSSAA не работает или изображение слишком размыто из-за ошибки драйвера.
Custom Filter Anti-Aliasing (CFAA)
[править | править код]Метод эксклюзивен для видеокарт AMD. CFAA — алгоритм, включающий в себя 4 фильтра: box, narrow-tent, wide-tent и edge-detect. Каждый фильтр, это разный подход к реализации MSAA.
- box: стандартный MSAA.
- narrow-tent: аналог CSAA.
- wide-tent: аналог QCSAA.
- edge-detect: при проходе фильтра edge detection по отрендеренному изображению, для определённых им пикселей, которые определяются как границы полигонов или резкие цветовые переходы, используется более качественный метод антиалиасинга с большим количеством семплов, а для остальных пикселей с меньшим.
Методы постобработки
[править | править код]Fast approXimate Anti-Aliasing (FXAA)
[править | править код]Эксклюзивен для видеокарт Nvidia. Не требует больших вычислительных мощностей. Это достигается путем сглаживания неровных краев («ступенек») в соответствии с тем, как они выглядят на экране в виде пикселей, а не путем анализа самих 3D-моделей, как при обычном сглаживании. Однако улучшение качества изображения, которое он обеспечивает, значительно менее впечатляюще, чем традиционные методы сглалживания, такие как MSAA. Эффект также может быть применен дважды двумя отдельными инструментами (например, настройками игры и панелью управления драйвером или инжектором и панелью управления драйвером и т. д.) или поверх SMAA или TAA для дальнейшего удаления неровностей, но, скорее всего, также ухудшит размытие, а также увеличит влияние на производительность.
MorphoLogical Anti-Aliasing (MLAA)
[править | править код]Аналог FXAA от компаний AMD и Intel. Доступно на видеокартах AMD в Windows и может быть принудительно включено для всех игр через панель управления драйвером дисплея независимо от используемого графического API, а также для игр OpenGL в Linux с драйверами Mesa. Оказывает большее влияние на производительность, чем FXAA.
Subpixel Morphological Anti-Aliasing (SMAA)
[править | править код]Метод базируется на основе MLAA. Качество изображения варьируется от игры к игре из-за различий в реализации, но, возможно, оно лучше, чем FXAA или MLAA.
Может быть внедрен в большинство игр через ReShade (даже с обнаружением краев на основе глубины)
Subpixel Reconstruction Anti-Aliasing (SRAA)
[править | править код]В настоящее время только Unigine 2.13 использует эту технику. SRAA напоминает морфологическое сглаживание (MLAA) по принципу работы.
Conservative Morphological Anti-Aliasing (CMAA)
[править | править код]По стоимости вычислений CMAA занимает положение между FXAA и SMAA 1x (в 1,0–1,2 раза больше стоимости вычислений стандартного FXAA 3.8 и в 0,55–0,75 раза больше стоимости вычислений SMAA 1x). По сравнению с FXAA, CMAA обеспечивает значительно лучшее качество изображения и темпоральную стабильность, поскольку он правильно обрабатывает линии краев длиной до 64 пикселей и основан на алгоритме, который обрабатывает только симметричные разрывы, чтобы избежать нежелательного размытия.
Directionally Localized Anti-Aliasing (DLAA)
[править | править код]Не путать с функцией Deep Learning Anti-Aliasing (DLAA) технологии Deep Learning Super-Sampling (DLSS) от Nvidia.
Используется в основном в Star Wars: The Force Unleashed II, но может встречаться и в некоторых других играх, особенно на движке Unity. По словам создателя этого метода, он сопоставим с морфологическим сглаживанием (MLAA), но обладает лучшей темпоральной стабильностью.
Темпоральные Методы
[править | править код]Общий термин для различных темпоральных методов. Не ограничен конкретным производителем видеокарт. Принудительно включается в некоторых играх.
Temporal approXimate Anti-Aliasing (TXAA)
[править | править код]Эксклюзивно для видеокарт Nvidia линейки GeForce 600 и новее. Техника в стиле кино, разработанная специально для уменьшения темпорального алиазинга (ползание и мерцание, наблюдаемое во время движении в играх). Сочетает некоторые элементы MSAA с фильтрами, аналогичными тем, что используются в фильмах с компьютерной графикой, для получения плавного изображения.
Temporal Super-Sampling Anti-Aliasing (TSSAA)
[править | править код]Также известен как ТМАА. Применяет сглаживание не только к текущему кадру, но и к некоторым кадрам, которые были отрендерены ранее, восстанавливая старые позиции пикселей, используя их скорость. Это создает более плавные и кинематографичные изображения в игре, при этом лишь немного увеличивая нагрузку на видеокарту.
Методы Реконструкции
[править | править код]Hybrid Reconstruction Anti-Aliasing (HRAA)
[править | править код]Гибридное решение аппаратной выборки, постобработки, временного анализа.
Апскейлеры
[править | править код]Технология Deep Learning Super Sampling (DLSS) от Nvidia использует умное сглаживание с помощью ИИ для улучшения картинки от суперразрешения. В DLSS 1.0 сглаживание было посредственным. В DLSS 2.0 Nvidia доработала принцип сглаживания с помощью ИИ и увеличила темпоральную стабильность, уменьшила гостинг (раздвоение картинки в динамических моментах) и размытие от сглаживания. Также в DLSS 2.0 был представлен режим сглаживания в нативном разрешении под названием Deep Learning Anti-Aliasing (DLAA).
Технология Xe Super Samping (XeSS) от Intel имеет схожий принцип работы как у Nvidia DLSS, поэтому сглаживание в XeSS схоже с сглаживанием в DLSS. В XeSS с версии 1.3 также был представлен режим сглаживания в нативном разрешении - XeSS Native AA. При этом XeSS вместе с его сглаживанием в нативном разрешении может работать и на видеокартах Nvidia и AMD с помощью инструкции DP4a.
Но технология FSR от AMD, в отличие от XeSS и DLSS, не использует ИИ для апскейлинга изображения и сглаживания. В FSR 1.0 также как и в DLSS 1.0 было посредственное сглаживание, т.к. изображение фильтровалось с помощью Фильтра Ланцоша. В FSR 2.0 был применён доработанный фильтр Ланцоша, который привнёс в FSR сглаживание, и картинка стала намного лучше, нежели чем в FSR 1.0, но производительность немного упала. В FSR 3.0,как в DLSS и XeSS, был представлен режим сглаживания в нативном разрешении - FSR3 Native AA.
См. также
[править | править код]- ClearType
- Хинтинг
- Temporal anti-aliasing
- Избыточная выборка сглаживания
- Мультисэмплинг
- Реконструкционный фильтр
Примечания
[править | править код]Литература
[править | править код]- Данил Гридасов. Под микроскопом. GeForce CSAA vs. Radeon CFAA . i3D-Quality. iXBT (23 октября 2008). Дата обращения: 30 сентября 2010.
- Kristof Beets, Dave Barron. Анализ методов сглаживания на основе super-sampling . iXBT (7 июня 2000). Дата обращения: 30 сентября 2010.
- Technical Report CSAA (30 октября 2006).