Начнем с определения:
Сгла́живание (англ. 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, так что есть надежда, что в будущем игр с ним будет все больше.
Итог
В итоге — какое сглаживание выбрать? Если видеокарта совсем плохо тянет игру, то или оставаться без сглаживания и смотреть на лесенки, или же выбрать FXAA и любоваться на мыло. Если же система по-мощнее, но MSAA все еще не тянет — стоит выбрать MLAA или SMAA. Если видеокарта играючи справилась с 8х MSAA — стоит смотреть на SSAA или TXAA.
Забыли ещё один тип сглаживания указать- MFAA.
Фишка Nvidia , вроде как только на видеокартах Maxwell и Pascal. Хотя может и другие поддерживают, не проверял- у меня на Maxwell видюха.
Смысл технологи- сглаживания улучшает качество изображения, полученное при использовании MSAA, одновременно сокращая потери производительности. Это дополнительно позволяет использовать высокое разрешение рендеринга и активировать технологию DSR.
GPU предыдущих поколений использовали фиксированные позиции для выборок, хранящиеся в ПЗУ. Когда геймеры выбирали сглаживание 2x или 4x MSAA, использовались имеющиеся позиции выборок. В Maxwell появилась возможность программировать позиции выборок для растеризации, которые хранятся в ОЗУ. Это является основой для новой, более гибкой техники сглаживания, которая уникальным образом решает трудности современных игровых движков, такие как повышенные затраты производительности при высококачественном сглаживании.
Программируемая мультипиксельная выборка-
Новая технология может так же быть запрограммирована на использование стандартных MSAA и TXAA-выборок, но драйвер или приложение могут загружать в ОЗУ позиции, которые свободно меняются от кадра к кадру или даже в рамках одного кадра. Именно с помощью этой технологии разработан метод многокадрового сглаживания (MFAA).
Многокадровое сглаживание-
Благодаря чередованию позиций выборок, 4xMFAA оказывает такое же влияние на производительность, как и 2xMSAA, однако обеспечивает качество изображения на уровне 4xMSAA.
Полноценно в играх этот метод ещё не появился (только вроде в парочке, чтобы прямо в меню можно было выбрать). Но если воспользоваться надстройками драйвера видеокарты- то можно полноценно задействовать этот метод практически для любой вышедшей игры, даже которая выходила давно. Плюс там же можно задействовать DSR функцию- но только если у вас топовая видеокарта или игра относительно не нова, так как DSR фактически превращает картинку любой игры которая поддерживает разрешение full hd до 4к, а потом плавно ее ужимает обратно под ваше разрешение экрана (разрешения выбранного для игры) существенно улучшая картинку. Как бы 4к в разрешении full hd) В общем картинка становиться гораздо лучше и чётче при использовании только лишь одного сглаживания.