Сглаживание (англ. anti-aliasing) — технология, используемая для устранения эффекта («лесенки» или «зубчатости»), возникающих на краях одновременно выводимых на экран множеств отдельных друг от друга плоских или объёмных изображений. Сглаживание было придумано в 1972 году в Массачусетском технологическом институте в Architecture Machine Group, которая позже стала основной частью Media Lab.
Основной принцип сглаживания
Основной принцип сглаживания — использование возможностей устройства вывода для показа оттенков цвета, которым нарисована кривая. В этом случае пиксели, соседние с граничным пикселем изображения, принимают промежуточное значение между цветом изображения и цветом фона, создавая градиент и размывая границу.
Применяется два варианта сглаживания:
- Общее сглаживание отрисовкой излишне крупного не сглаженного изображения с последующим уменьшением разрешения.
- Специализированные алгоритмы сглаживания, работающие на изображениях определённого типа (например, Алгоритм Ву для отрисовки отрезков).
Следует заметить, что сглаживание зависит от гаммы монитора. В частности, среднее между 0,2 и 0,8 — это не обязательно 0,5, а ( 0 , 2 γ + 0 , 8 γ 2 ) 1 / γ 2^+08^>> ight)^> . Особенно это заметно на тонких узорах и тексте. Поэтому сглаживание наилучшего качества получается только тогда, когда γ известна.
На что влияет сглаживание в играх?Тест taa,fxaa,smaa,ssaa
Виды сглаживаний
Примечание: сглаживание влияет на FPS (кол-во кадров в секунду) в зависимости от ПСП (пропускной способности) видеокарты.
SSAA
SSAA (SuperSample Anti-Aliasing) — избыточная выборка сглаживания, также называемое полноценным или полноэкранным сглаживанием, используется для исправления алиасинга «лесенки» на полноэкранных изображениях. SSAA было доступно на ранних видеокартах, вплоть до DirectX 7. Начиная с DirectX 8 из-за огромной вычислительной сложности было заменено всеми производителями видеокарт на множественную выборку сглаживания, которая также была заменена другими методами, такими как CSAA + TrAA/AAA. MSAA даёт несколько худшее качество графики, но обеспечивает огромную экономию вычислительной мощности. Поскольку SSAA даёт более высокое качество изображения, он не был полностью исключён и до сих пор реализуется аппаратно в продуктах AMD и NVIDIA. В модельный ряд AMD HD6xxx он включён в качестве особенности (только для игр на DirectX 9), также он был включён в драйверы NVIDIA Fermi для всех игр, начиная с игр на DirectX 9 и заканчивая играми на DirectX 11 с использованием любых видеокарт NVIDIA с поддержкой DirectX 10 и выше.
В результате изображение с SSAA выглядит более мягко и реалистично. Однако у фотографических изображений с простым сглаживанием (например, суперсэмплинг, а затем усреднение) может ухудшиться внешний вид некоторых типов линейных рисунков или диаграмм (изображение будет выглядеть размыто), особенно там, где линии наиболее горизонтальны или вертикальны. В этих случаях может быть использован хинтинг.
Почему сглаживание в играх важно? FXAA, MSAA, DLSS, TXAA
Полноэкранное сглаживание позволяет устранить характерные «лесенки» на границах полигонов. Однако следует учитывать, что полноэкранное сглаживание потребляет немало вычислительных ресурсов, что приводит к падению частоты кадров.
Качество сглаживания ограничено пропускной способностью видеопамяти, поэтому видеокарта с быстрой памятью сможет просчитать полноэкранное сглаживание с меньшим ущербом для производительности, чем GPU более низкого класса. Сглаживание можно включать в различных режимах. Например, сглаживание x4 даст более качественное изображение, чем сглаживание x2, но значительно снизит производительность. Сглаживание SSAAx2 удваивает разрешение, тогда как SSAAx4 его учетверяет.
MSAA
MSAA (Multisample Anti-Aliasing) — технология пришедшая на смену SSAA, работающая только с геометрией, благодаря этому дающая схожий эффект сглаживания с SSAA, но при меньшем потреблении ресурсов.
CSAA
CSAA (Coverage Sampling Anti-Aliasing) — продолжение «эволюции» SSAA➔MSAA➔CSAA. Улучшение достигнуто за счёт того, что в буфер кадра передается ещё информация о субсэмпле с соседнего пикселя. Что в итоге помогает рассчитать более точное сглаживание. При равных уровнях (x2, x4, x8. ) CSAA и MSAA, качество всегда будет выше у CSAA, а по нагрузке они примерно равны.
QCSAA
QCSAA (Quality Coverage Sampling Anti-Aliasing) — улучшенная версия CSAA, за счёт использования вдвое большего количества сэмплов для анализа.
AAA
AAA (Adaptive Anti-Aliasing) — у MSAA есть проблема при сглаживании краёв на прозрачных объектах. Данный способ призван устранить данную проблему. Является объединением MSAA и SSAA. Данный вид ресурсоёмок и рекомендуется обладателям мощных видеокарт. Используется только у AMD.
TrAA
TrAA (Transparency Anti-Aliasing) — аналог AAA, но от Nvidia.
CFAA
CFAA (Custom Filter Anti-Aliasing) — включает в себя 4 фильтра: box, narrow-tent, wide-tent и edge-detect. Каждый фильтр, это разный подход к реализации MSAA. Используется только у AMD.
- box: стандартный MSAA.
- narrow-tent: аналог CSAA.
- wide-tent: аналог QCSAA.
- edge-detect: при проходе фильтра edge detection по отрендеренному изображению, для определённых им пикселей, которые определяются как границы полигонов или резкие цветовые переходы, используется более качественный метод антиалиасинга с большим количеством сэмплов, а для остальных пикселей с меньшим.
TXAA
TXAA (Temporal approXimate Anti-Aliasing) — технология от Nvidia, которая использует основу MSAA. В формуле расчёта используется время, данные по пикселям из предыдущих кадров и данные из обрабатываемой сцены. После чего происходит усреднение по цвету. Это позволяет избавиться от мерцания и дерганья объектов в игре.
Вдали дает качественную картинку, однако немного мылит близкие объекты и требования к ресурсам почти как для MSAA, хотя качество при тех же значениях лучше. Со слов производителя, TXAAx2 сравнимо по качеству с MSAAx8, но при по затратам производительности сопоставимо как с MSAAx2, а TXAAx4 выше по качеству чем MSAAx8, но по затратам производительности сопоставимо как с MSAAx4. Отлично подходит для сглаживания в динамике.
TAA
TAA (Temporal Anti-Aliasing) — аналог TXAA, но не от Nvidia.
Пример сглаживания TAA.
TSSAA
TSSAA (Temporal Super Sampling Anti-Aliasing) — аналог TXAA, но не привязанный к видеокартам Nvidia и основывающийся на суперсэмплинге.
FXAA
FXAA (Fast approXimate Anti-Aliasing) — метод сглаживания от Nvidia, представляющий собой однопроходный пиксельный шейдер, который обсчитывает результирующий кадр на этапе постобработки. Является более производительным решением, по сравнению с традиционным MSAA, что, однако, сказывается на точности работы и качестве изображения.
MLAA
MLAA (MorphoLogical Anti-Aliasing) — аналог FXAA от компании Intel. Ищет «зубчатые» границы на каждом кадре, похожие на Z, L и U буквы и смешивает цвета соседних пикселей, входящих в каждую такую часть. Алгоритм переведён на использование процессора, а не видеокарты. Отсюда можно рекомендовать его обладателям слабых видеокарт и с более менее производительным процессором.
Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA. Имеется реализация у AMD, но технически может использовать и Nvidia. Имеет проблему: сглаживание не работает на прозрачных текстурах. Поэтому в довесок этой постобработки нужно подключать еще и TrAA или AAA для улучшения изображения. Время обработки занимает 0,9 мс.
Так же есть алгоритмы MLAA реализованные на видеокартах.
MFAA
MFAA (MultiFrame Sampled Anti-Aliasing) — метод сглаживания от Nvidia, эксклюзивный для видеокарт поколения Maxwell. Благодаря чередованию позиций выборок, MFAAx4 оказывает такое же влияние на производительность, как и MSAAx2, однако обеспечивает качество изображения на уровне MSAAx4.
SRAA
SRAA (Subpixel Reconstruction Anti-Aliasing) — новый двухпроходный алгоритм от Nvidia. SRAA очень схож с MLAA, но работает с буферами глубины и картами нормалей, из-за чего лучше определяет границы для сглаживания и затененные края. Время выполнения в целом очень низкое, основное время в алгоритме уходит на обработку затенения. На выходе могут появляться артефакты. Для сравнения на сглаживание изображения с разрешением 1280×720 методом SSAA уходит около 5-10 мс, а у SRAA 1,8 мс.
SMAA
SMAA (Subpixel Morphological Anti-Aliasing) — комбо из MSAA, SSAA и MLAA. По сути улучшенный MLAA с добавлением локального контраста, поиском паттернов и использованием большего числа сэмплов. Иногда может добавляться ещё и временная избыточная выборка. Ресурсов потребляет больше чем MLAA, но задействует при этом видеокарту, а не процессор.
Можно встретить разновидности:
- SMAAx1: классический алгоритм SMAA, включающий точный поиск расстояний, работа с локальным контрастом для определения краёв, геометрических объектов и поиск диагональных линий. Время обработки занимает 1,02 мс.
- SMAATx2: SMAA x1 + техники из TSSAA. Время обработки занимает 1,32 мс.
- SMAASx2: SMAA x1 + техники из MSAA. Время обработки занимает 2,04 мс.
- SMAAx4: SMAA x1 + техники из SSAA, MSAA, TSSAA и TMSAA. Время обработки занимает 2,34 мс.
CMAA
CMAA (Conservative Morphological Anti-Aliasing) — что-то среднее между FXAA и SMAAx1. Идеально подходит для слабых и средних видеокарт. Отличие от FXAA происходит за счёт обработки линий краёв длиной до 64 пикселей. Используется алгоритм, с обрабатыванием только симметричных разрыWow цветов, чтобы избежать ненужного размытия. Отличие от SMAAx1 происходит за счёт менее полного сглаживания объектов, т. к. обрабатывается меньше типов фигур и обладает повышенной временной стабильностью, т. е. меньше мерцаний объектов.
Источник: handcent.ru
Fxaa в скайриме это
Будь в курсе последних новостей из мира гаджетов и технологий
iGuides для смартфонов Apple
Типы сглаживания в играх
Егор Морозов — 1 марта 2017, 18:00
Начнем с определения:
Сгла́живание (англ. anti-aliasing) — технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских или объёмных изображений.
Почему возникает «зубчатость»? Проблема в том, что мониторы современных ПК состоят из квадратных пикселей, а значит на них действительно прямыми будут только горизонтальные и вертикальные линии. Все линии, находящиеся под углом, будут строиться из пикселей, находящихся по диагонали друг к другу, что и вызывает «зубчатость». К примеру, справа на картинке — вроде бы ровная линия. Однако стоит ее увеличить, как сразу становится видно, что никакая она не прямая:
Чем это грозит в играх? Тем, что, во-первых, при движении будет возникать эффект «мельтешения» — такие неровные линии будут постоянно перестраиваться, что будет и отвлекать от игры, и делать картинку неестественной. Во-вторых — далекие объекты будут выглядеть нечетко.
Сразу же возникает вопрос — а как убрать эти неприятные эффекты? Самый простой способ — сделать пиксели меньше при том же размере экрана (иными словами — сделать разрешение больше и поднять плотность пикселей). Тогда «зубчатость» будет проявляться слабее, и картинка будет выглядеть естественнее. Но увы — способ хоть и простой, но дорогой, да и для видеокарты это достаточно сильная дополнительная нагрузка. И тогда, дабы улучшить картинку не меняя монитора, было придумано сглаживание.
Типы сглаживания
SSAA (Supersample anti-aliasing) — самое тяжелое сглаживание, потому что оно, по сути, описывает способ убирания лесенок, который я привел выше: при четырехкратном (4х) сглаживании видеокарта готовит картинку в разрешении вчетверо выше, чем выводит на экран, потом происходит усреднение цвета соседних пикселей и вывод на экран в исходном разрешении. Получается, что виртуальная плотность пикселей вдвое выше, чем у экрана, и лесенки практически перестают быть заметными. Очень сильно сказывается на производительности: к примеру, если разрешение в игре 1920х1080, то видеокарта вынуждена готовить картинку в 4К — 3840х2160. Однако результат получается великолепным — картинка выглядит как живая, никакого мельтешения нет:
MSAA (Multisample anti-aliasing) — улучшенная версия SSAA, которая потребляет гораздо меньше ресурсов. К примеру — зачем сглаживать то, что находится внутри текстуры, если лесенки есть только на краях? Если текстура представляет собой прямую линию под углом к игроку, то можно сгладить лишь один участок и продолжить эффект на весь край текстуры. В результате нагрузка на видеокарту становится ощутимо меньше, и по тяжести даже 8х MSAA оказывается ощутимо легче 4х SSAA при сравнимом качестве картинки.
CSAA и CFAA (Coverage Sampling anti-aliasing и Custom-filter anti-aliasing) — по сути несколько улучшенный MSAA от Nvidia и AMD (позволяют выбирать дополнительные отсчёты «перекрытия» пикселя, по которым можно уточнять итоговое значение цвета попадающего на край треугольника экранного пикселя). 8x CSAA/CFAA дает сравнимое с 8x MSAA качество картинки, однако потребляет примерно столько же ресурсов, столько и 4х MSAA. На сегодняшний момент оба сглаживания не используются — разработчики игр решили использовать унифицированные для всех видеокарт сглаживания.
FXAA (Fast approXimate anti-aliasing) — нетребовательное быстрое сглаживание. Алгоритм прост — совершается один проход по всем пикселям изображения и усредняются цвета соседних пикселей. Это слабо нагружает видеокарту, однако сильно мылит картинку (обратите внимание на четкость текстуры камня), делая далекие объекты вообще неузнаваемыми:
Такое сглаживание имеет смысл включать только если лесенки терпеть не можете, а видеокарта не тянет лучшее сглаживание. По сути тут идет выбор между замыливанием изображения и лесенками.
MLAA (MorphoLogical anti-aliasing) — аналог FXAA от Intel. Работает схожим образом, однако алгоритм сложнее — все изображение разбивается на Z, L и U -образные части, и сглаживание происходит смешением цветов пикселей, входящих в каждую такую часть:
Из особенностей — это единственное сглаживание, работающее полностью на процессоре, поэтому практически не влияет на fps в играх при мощном процессоре. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA, однако до 2x MSAA все еще далеко.
SMAA (Subpixel Morphological anti-aliasing) — смесь FXAA и MLAA. По сути несколько улучшенный MLAA, но работающий на видеокарте (так как процессор для сглаживания подходит гораздо хуже). Дает картинку, сравнимую с MLAA, лучше, чем FXAA (обратите внимание на бочки), однако потребляет больше ресурсов:
Такое сглаживание является хорошей заменой FXAA, и по уровню нагрузки на видеокарту находится между отсутствием сглаживания и 2x MSAA, так что есть надежда, что в будущем игр с ним будет все больше.
TXAA(Temporal antialiasing) — новая технология сглаживания от Nvidia. В отличии от других типов сглаживания, которые работают только с одним кадром (то есть с неподвижной картинкой), это умеет работать с движущимися объектами и хорошо убирает «мельтешение» картинки. По сути является смесью MSAA и SMAA, дает очень качественную картинку, однако немного ее мылит и очень требовательно к ресурсам.
В итоге — какое сглаживание выбрать? Если видеокарта совсем плохо тянет игру, то или оставаться без сглаживания и смотреть на лесенки, или же выбрать FXAA и любоваться на мыло. Если же система по-мощнее, но MSAA все еще не тянет — стоит выбрать MLAA или SMAA. Если видеокарта играючи справилась с 8х MSAA — стоит смотреть на SSAA или TXAA.
Источник: www.iguides.ru
Краткий обзор по сглаживанию в играх
Ни для кого не секрет, что в большинстве современных игр уровня ААА много настроек графики. Но далеко не все знают, какой параметр за что отвечает, какой уровень установить лучше всего и сколько он может отнять ресурсов у ПК. Сегодня мы поговорим о сглаживании.
Что такое сглаживание? Наиболее простой ответ дает Википедия.
Сглаживание (anti-aliasing, AA, антиалязинг, антиалайзинг и тд) — технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских, или объёмных изображений. Сглаживание было придумано в 1972 в Массачусетском технологическом институте в Architecture Machine Group.
Что бы вам не пришлось много читать, сразу приведу основные варианты сглаживаний. Точно так же они обычно обозначаются и в играх.
SSAA, MSAA, CSAA, NFAA, FXAA, DLAA, MLAA, SMAA, TXAA.
Начну с самого крутого, правильного качественного и самого «жрущего» сглаживания – SSAA или по-другому — Super-Sampling. Простой пример потребляемых ресурсов этим методом сглаживания: для разрешения 1280×1024 с SSAA 4x необходим экранный буфер такого же размера, как при разрешении 2560×2048 без SSAA. Размытие картинки – НЕТ. Еще этот метод сглаживания называют FSAA. Рекомендую применять владельцам только самых топовых ПК (видеокарт).
MSAA – улучшенный вариант суперсемплинга (SSAA). Практически такой же по качеству, но требующий меньшее количество ресурсов видеокарты, по сравнению с SSAA. Размытие картинки – очень незначительное, практически не уловимое. И хотя этот метод сглаживания требует меньше ресурсов, чем его первый собрат, этот вариант АА так же рекомендуется владельцам топовых видеокарт.
CSAA – разработка NVIDIA. УсовершенстWowанный (немного) MSAA. Качество картинки примерно на уровне MSAA 8x, но по ресурсам ест как MSAA 4x. Размытие картинки – незначительное, практически не уловимое. Из последних игр, в которых его использовал – Star Wars Battlefront (DICE).
FXAA – известен своим низким требованиям к видеосистеме. Сглаживает вполне прилично, я бы сказал хорошо. Но есть один недостаток, который заметен, скажем, при сравнении с MSAA – «замыливание» картинки. Оно больше, чем среднее. Подойдет для тех, кто не терпит лесенки, но не может себе позволить предыдущие алгоритмы сглаживания.
MLAA – малоизвестный алгоритм сглаживания. Единственный алгоритм, который работает за счет процессора, а не видеокарты. Он не зависит от сложности сцены, так что можно гарантировать отсутствие «подтормаживаний» в любой момент. Intel позиционирует MLAA как конкурента MSAA. Если судить объективно, MSAA работает немного медленней, но и качественней.
По сравнению MLAA с FXAA первый будет медленнее, но при этом качество картинки – без заметного «замыливания».
SMAA – смесь FXAA и MLAA. По скорости находится между FXAA и MSAA. По качеству – картинку практически не блюрит.
TXAA – новый алгоритм сглаживания. Сочетает преимущества MSAA и FXAA. Разработка NVIDIA. Сглаживает ОЧЕНЬ качественно. TXAA 4x = MSAA 8x.
Хотя порой первый даже лучше. НО. TXAA «мылит» картинку. «Блюрит» ее. И если сравнивать с MSAA – последний выглядит лучше.
Итог: чОткий, но самый древний алгоритм сглаживания – SSAA. MSAA – очень хороший по качеству, но ест заметно много ресурсов. CSAA – практически такой же по качеству, но ресурсов ест меньше. FXAA – если видеокарта не позволяет, но «сглаживать» хочется, то этот вариант для вас. MLAA – на него можете забить. SMAA – нормальный вариант, можете его опробовать. TXAA – сглаживает очень хорошо. Очень.
Но блюр очень раздражает. Поэтому могу рекомендовать этот алгоритм, если вам плевать на «замыливание».
Кстати. В разрешении 4k сглаживание порой Wowсе не требуется. Либо можно применить самое простое CSAA или MSAA 2x. Не более. Интересно, как сложится картина лет через 5-7, когда 4k разрешение приобретет массовость.
Я специально не стал приводить примеры комбинирования разных методов сглаживания, что бы не вызвать у вас путаницы. Достаточно этих алгоритмов, что бы вы могли определиться, какое сглаживание подходит для вашей системы и для вашего восприятия.
Источник: greentechreviews.ru