Для чего предназначена функция anti aliasing в видеокартах

Обновлено: 05.07.2024

Игра на ПК предлагает нам лучшее качество и лучшую производительность. Но это требует некоторого времени при запуске игры. В отличие от консолей, когда мы будем играть на Windows мы должны войти в графические настройки игры, чтобы выбрать качество, которое мы хотим, чтобы наша игра имела, и настроить производительность в зависимости от того, хотим ли мы больше FPS и менее качественные, или максимальное качество и менее. FPS. Однако, если мы когда-либо заходили в параметры игры, мы видели много разных параметров. Что означает каждый из них? И как они влияют на качество или производительность игры?

Хотя в большинстве компьютерных игр обычно есть несколько настроек качества по умолчанию (низкое, среднее, высокое, ультра) для тех, кто не хочет усложнять ситуацию, если мы один из тех, кто хочет использовать каждый последний FPS и устранить каждую последнюю пилу. обязательно будете одним из тех, кто настраивает игровые настройки вручную. И различные настройки, которые мы можем настроить, могут иметь немного странные имена, поэтому иногда бывает трудно понять, что каждый из них делает.


Убить пилу в играх

Графика в играх имеет все больше и больше полигонов, что придает им более качественный вид. Однако, в зависимости от конфигурации, которая у нас есть в игре, возможно, что эта графика обрабатывается не полностью, чтобы сэкономить ресурсы и сделать игру как можно более плавной. Это тогда, когда всем известное (и раздражающее) » зубья пилы " появляться.

И, чтобы положить им конец, видеокарты используют различные методы, известные как сглаживание , или AA.

Что такое сглаживание

Сглаживание , AA, представляет собой технологию, состоящую из набора методов, которые обрабатываются непосредственно на видеокарте, чтобы улучшить окончательное качество изображения, которое мы видим в играх. Как мы объясняли, эти методы стремятся устранить «зубья пилы», которые появляются в различных текстурах игр, когда пиксели обрабатываемых изображений слишком велики.

Эти методы предназначены для улучшения качества графики, которая нам ближе, поэтому они, как правило, не применяются к более удаленным фонам. Для более удаленных текстур необходимо использовать так называемые «фильтры».


Типы сглаживания

Существует несколько типов АА для удаления зубьев пилы из игр, но не все они работают одинаково или дают одинаковый конечный результат. Поэтому ниже мы увидим, какие из них наиболее известны, как они работают и как они влияют на производительность и качество конечного продукта.

Старые методы AA действовали непосредственно на исходные изображения, но это не давало хорошего качества (особенно при изменении размера) или хорошей производительности в играх. FXAA пришел именно для того, чтобы это изменить. Этот метод работает непосредственно с конечным изображением, а не с исходными изображениями. Что он делает, так это размывает или смазывает края изображений, так что эти зубья пилы исчезают. Но результат, в конце концов, может оставлять желать лучшего.

Это рекомендуемый метод для старой графики, поскольку ее низкое качество компенсируется хорошей производительностью. Использование этой системы сглаживания означает потерю всего пары кадров в секунду. В высококачественной графике мы почти не заметим потери производительности, хотя для достижения более высокого качества рекомендуется выбрать другие системы.

SSAA / FSAA

Эти два типа AA используют грубую силу для улучшения качества изображений в играх. Что он делает, так это загружает и отображает изображение с качеством, намного более высоким, чем то, которое мы настроили в игре, он применяет соответствующие сглаживания, а затем изменяет его размер, чтобы адаптировать его к разрешению игры. Благодаря им мы можем получать изображения гораздо более высокого качества, но жертвуем большим количеством ресурсов, что приводит к значительной потере FPS.

Оба SSAA и FSAA обычно сопровождаются числом (2x, 4x, 8x), которое означает, сколько раз изображение обрабатывается. И чем шире эта картина, тем экспоненциально будет расти потребление ресурсов.

Этот тип постобработки основан на SSAA, но он гораздо более ограничен. Основная проблема, которую мы обнаруживаем при использовании этой системы, заключается в том, что она не может работать с альфа-текстурами, что влечет за собой гораздо большую потерю производительности в играх. Активация 4x MSAA подразумевает потерю до 20 FPS в нашей игре.

Это правда, что с его помощью мы можем создавать более четкие изображения с меньшим количеством зубчатых краев, поскольку качество, которое мы получаем, бесконечно превосходит качество FXAA. Но мы должны убедиться, что мы используем очень мощный граф, а также спросить себя, действительно ли использование ресурсов того стоит, поскольку оно может не сильно отличаться от SSAA.

Сглаживание MSAA

«Улучшенное морфологическое сглаживание субпикселей» или SMAA , представляет собой улучшенную версию FXAA для устранения неровных краев графики в играх. Этот метод был разработан в Университете Сарагосы совместно с компанией Crytek (известной своим движком CryEngine и играми Crysis), но в играх его не так часто можно найти на выбор.

Конечный результат лучше, чем то, что мы можем получить с FXAA, но он также потребляет больше ресурсов, чем этот.

EQAA / CSAA

EQAA (для AMD графика) и CSAA (для NVIDIA graphics) - это методы сглаживания, основанные на MSAA (то есть улучшенные версии SSAA), но оптимизированные для работы на этих видеокартах. Благодаря им можно достичь гораздо более высокого качества, чем то, что мы получаем с FXAA, с гораздо меньшими потерями FPS, чем с техникой MSAA.

Нам нужна мощная видеокарта, чтобы иметь возможность обрабатывать информацию, и она готова использовать эти методы. Конечно, в играх эти опции встречаются редко, они не самые распространенные.

Еще один очень редкий метод сглаживания. Он основан на той же концепции, что и MSAA, но способен устранить «зубья пилы» в играх и улучшить качество графики при гораздо более низких требованиях, чем другие подобные методы. Проблема в том, что этот прием не получил широкого распространения, поэтому в играх он встречается редко.

Игровые фильтры для улучшения удаленных текстур

Подобно тому, как сглаживание направлено на улучшение качества графики, которая нам ближе, так и удаленная фильтрация текстур направлена ​​на улучшение качества самых дальних текстур в играх. Редко можно найти пиксели на горизонте или при самых наклонных углах обзора, но и их нельзя оставить без обработки. И, чтобы улучшить его качество, есть несколько типов фильтров, которые мы можем применять в зависимости от мощности нашего графика.

Билинейная фильтрация

Этот фильтр стремится улучшить самые дальние текстуры, применяя серию интерполяция между ними. Таким образом достигается более резкое воздействие на текстуры. Но это также может доставить нам проблемы. Например, этот тип фильтрации приводит к тому, что некоторые текстуры отсутствуют в игре, или он также может вызывать некорректную загрузку некоторых текстур при рендеринге. Это тот, который потребляет меньше всего ресурсов GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР, но это может доставить нам много проблем. Поэтому, если у нас нет выбора, лучше не использовать его.

Трилинейная фильтрация

Этот тип фильтрации изображений улучшенная версия билинейной фильтрации . Он работает практически так же, как и он, но решает проблемы с текстурами и эффектами, которые мы можем получить при использовании билинейных фильтров. Общее качество этого фильтра выше, но он также потребляет немного больше ресурсов, чем предыдущий фильтр. В любом случае, они существуют уже давно, поэтому, конечно, мы вряд ли заметим какую-либо потерю производительности и улучшение качества при их использовании.

Анизотропный фильтр

Это самый популярный тип фильтра. Это самый продвинутый из трех, не оказывающий большого влияния на общую игровую производительность. Благодаря этому можно устранение эффекта сглаживания текстур, находящихся дальше нашего поля зрения. Его главное преимущество заключается в том, что, в отличие от предыдущих, эффект размытия намного ниже, что означает гораздо больше деталей как на расстоянии, так и, особенно, в наклонных углах изображений.

Обычно мы можем выбирать между несколькими уровнями фильтрации: 2x, 4x, 8x и 16x. Чем выше этот множитель, тем выше качество изображений, которые мы видим дальше, но потребление ресурсов видеокарты также будет выше.

Анизотропный фильтр

Сглаживание, анизотропный фильтр… Какая конфигурация лучше?

Хотя все элементы имеют одно и то же назначение, чтобы улучшить качество графики, каждая опция специализируется на определенном типе графики. И они включают, в большей или меньшей степени, производительность игр.

Если у нас есть высококлассный компьютер с хорошей видеокартой мы можем использовать SSAA или MSAA в качестве сглаживания. Это самые распространенные и те, которые дадут нам лучшее качество графики, которая у нас ближе к экрану. Если графика мощная, конечно, она также может быть с анизотропным фильтром, не оказывая слишком большого влияния на производительность игры или на FPS.

Если у нас есть компьютер среднего уровня , то мы должны снизить наши ожидания. Мы можем попробовать использовать SSAA x2, чтобы увидеть, есть ли большая потеря FPS, поскольку даже это дает нам лучшие результаты, чем FXAA. В случае, если мы сильно потеряем производительность в игре, тогда нам придется довольствоваться обычным FXAA, по крайней мере, чтобы не видеть зубья пилы на ближайших текстурах. А для самых дальних текстур наилучший результат даст трилинейный фильтр.

Наконец, если у нас есть очень старый компьютер , чем меньше этих эффектов мы применяем в конфигурации, тем лучшую производительность мы получим. Если графический процессор низкого уровня, даже последний FPS, который мы можем выиграть, будет оценен, даже если это означает получение несколько более низкого качества.

Другие настройки для оптимизации игр

Помимо сглаживания для оптимизации близких текстур и фильтров для удаленных, в играх обычно есть другие параметры, которые могут помочь нам улучшить (или ухудшить) игровой процесс.

V-Sync: предотвращение разрывов экрана

Хотя многие люди за этот вариант и многие против него, правда в том, что вертикальная синхронизация - это незаменимый вариант, если мы хотим иметь возможность наслаждаться нашими играми в полной мере. Проблема с разрывом экрана возникает, когда график работает с другой скоростью, чем та, которую мы установили в нашем мониторе. Чтобы избежать этого, что V-SYNC делает Это соответствие кадров, генерируемых видеокартой, с частотой обновления монитора. Для этого эта функция обычно останавливает игровой движок или буферизует уже сгенерированные кадры до тех пор, пока монитор не запросит следующий кадр.

Когда FPS превышает частоту обновления монитора, эта опция обычно не вызывает проблем. Но когда пропадают кадры, это когда может возникнуть задержка нажатия клавиш или мыши. Если это происходит с нами, лучше снизить качество графики, чтобы преодолеть частоту обновления монитора, и активировать V-Sync для более плавного просмотра.

Предел FPS: решение против заикания

Когда мы запускаем игры с очень высокой частотой обновления (200 FPS, 300, 400 и т. Д.), Мы видим, что игра, по-видимому, работает очень плавно. Но время от времени возникают небольшие рывки или заикания, которые могут очень раздражать. Это то, что называется заиканием. Эти проблемы во многом зависят от оптимизации игры, но чаще всего возникают, когда скорость FPS в игре не соответствует частоте обновления монитора.

Если мы активируем Предел FPS (либо с панели NVIDIA или AMD, либо из самой игры) мы будем заставлять игру не превышать указанное количество кадров. Если у нас будет экран с частотой 60 Гц, и мы ограничим игры до 60 кадров в секунду, мы решим эти проблемы.

G-Sync или FreeSync: устранение задержки ввода V-Sync

Хотя существует множество теорий о том, как следует настраивать эту функцию, нам не следует есть голову. Единственное, что нам нужно сделать, это активировать G-Sync на панели Nvidia (или FreeSync в случае AMD) и в игре активировать V-Sync. Больше ничего, ни ограничение FPS, ни активация, ни деактивация буферов… ничего. Позвольте графике и монитору творить чудеса.

DLSS - Улучшение графики с помощью машинного обучения

Глубокое изучение супер выборки или DLSS , это технология, включенная в видеокарты NVIDIA RTX, с помощью которой производитель хочет помочь пользователям улучшить качество игр и добиться большего количества кадров в секунду с помощью искусственного интеллекта. Эта технология основана на DNN (Deep Neural Networks) и стремится улучшить качество графики, не полагаясь на технологии AntiAliasing или другую фильтрацию, что значительно улучшает производительность и конечное качество.

Что делает графика NVIDIA благодаря ядрам Tensor (ответственным за DLSS), так это собирает и обрабатывает 50% пикселей в изображениях и с помощью ИИ, который находится в постоянном обучении, определяет, что такое оставшиеся пиксели. Это позволяет обрабатывать более крупную графику за меньшее время и возвращает пользователю изображения более высокого качества с более высоким FPS.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

В любой современной игре в настройках графики легко найти пункт «Сглаживание». Как работает эта функция, насколько она полезна и какой вариант сглаживания выбрать, если доступно несколько — разберём подробнее.

Содержание

Что такое сглаживание и для чего нужно

Для начала стоит немного рассказать о том, что такое алиасинг, чтобы понять, для чего нужно сглаживание. Дело в том, что графика дискретна — очевидно, пиксель либо закрашен полностью, либо нет. При построении сцены цвет каждого пикселя определяется тем, лежит ли в его центре часть какого-нибудь объекта или нет. Именно поэтому некоторые детали могут не отрисовываться, если они покрывают лишь четверть пикселя. А другие примитивы, наоборот, имеют слишком резкие переходы между парой пикселей, даже если сам предмет должен обладать плавными формами.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Слева направо: каким должен быть объект, как он отрисовывается, какие детали теряются

Иначе говоря, алиасинг — резкий переход между двумя или несколькими пикселями. Самые очевидные примеры алиасинга в играх — мерцание тонких объектов или текстур с мелкими деталями в движении и эффект ступенчатости на краях объектов.

Так вот, сглаживание, или же AA (Anti-Aliasing) — это способ устранения артефактов алиасинга, в том числе и тех самых «лесенок» на изображении. Оно позволяет сделать сцену в игре более реалистичной и приятной глазу, как в реальной жизни. Добиваются плавности как раз «смягчением» переходов между пикселями, заполняя соседние пиксели корректными оттенками.

Какие виды сглаживания в играх бывают

Количество методов сглаживания не так мало, как кажется на первый взгляд. Так как их очень много, обо всех рассказать сложно, поэтому я затрону наиболее распространённые и интересные из них.

Сами методы можно разделить на 2 категории: те, которые применяются во время рендеринга и те, которые применяются к уже построенному изображению (постпроцессинговые).

SSAA (Super Sampling Anti-Aliasing)

Также его называют методом избыточной выборки. Основан на принципах получения образцов цвета (сэмплов) сразу в 4 участках пикселя с последующим усреднением. Важное уточнение: для этого вместо одного пикселя рендерятся четыре, и уже после расчётов цвета они сжимаются обратно до одного. Кстати, необязательно должно использоваться именно четырёхкратное увеличение, это лишь один из самых распространённых типов алгоритма. Существует множество вариаций паттернов выборки: среди них ordered grid, rotated grid, jitter. Все они отличаются только расположением точек получения сэмплов и точностью результата. Иногда в настройках игры можно увидеть несколько видов SSAA, которые как раз будут отличаться паттернами. Самый простой — ordered grid (OGSSAA), остальные методы, как правило, эффективнее.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Квадрат — это пиксель, точки — это сэмплы. Слева направо: Ordered Grid, Rotated Grid, Jitter

Существенным недостатком SSAA является его высокое требование к ресурсам — неудивительно, ведь по сути это рендеринг всей сцены в разрешении, превышающем нативное в несколько раз. Зато этот метод сглаживания один из самых эффективных и точных, правда, в современных AAA-проектах встречается не так часто.

DSR (Dynamic Super Resolution)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Владельцы видеокарт NVIDIA имеют возможность включить в «Панели управления NVIDIA» функцию под названием DSR. С этой технологией изображение в игре рендерится в большем разрешении, а затем масштабируется до нативного разрешения монитора. Результат оказывается близок к SSAA, за исключением того, что в DSR ещё накладывается фильтр размытия.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Как и метод избыточной выборки, DSR потребляет много ресурсов. Главный плюс использования этой функции — она поддерживается в большем количестве игр (хотя в некоторых могут возникать проблемы) и не требует внедрения разработчиком.

MSAA (MultiSample Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Как и SSAA, MSAA делает выборку нескольких участков пикселя и усредняет цвет, но только на крайних пикселях объектов, а не на всей сцене, а значит, и ресурсов потребляет значительно меньше. Весьма распространён и даёт хороший результат. Из-за такой выборки проявляются и недочёты технологии — на стыках между двумя объектами изображение по-прежнему «острое», то же самое видно и на высокодетализированных, а также прозрачных текстурах. Ну и хоть оно менее ресурсозатратное, нежели SSAA, это всё ещё «тяжёлый» метод, сильно нагружающий видеокарту.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

MSAA в играх встречается в нескольких типах: 2x, 4x, 8x, 16x. Число отражает количество выборок на пиксель. Чем оно выше, тем лучше результат, но сильнее нагрузка.

CSAA (Coverage Sampling Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

CSAA — это доработанный MSAA от компании NVIDIA. Он выдаёт результат, близкий к MSAA 8x или 16x, потребляя ресурсы на уровне MSAA 4x. Не углубляясь в детали, улучшение сглаживания достигается за счёт использования информации ещё и о соседних пикселях. Похожая технология от AMD называется EQAA (Enhanced Quality Anti-Aliasing). Обе технологии почти не встречаются в современных играх из-за того, что сейчас разработчики предпочитают использовать универсальные методы.

TAA (Temporal Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Чтобы открыть картинку в исходном разрешении, кликните на неё и нажмите «Показать оригинал»

TAA — популярный метод сглаживания, который часто используется во многих современных играх. Он берёт информацию о пикселях не только с текущего кадра, но и с предыдущего. За счёт этого TAA позволяет избавиться от эффекта мерцания, например, на тонких объектах. В целом, это довольно качественный метод, не уступающий MSAA, при этом потребляющий в разы меньше ресурсов. Недостатки тоже есть: изображение может быть слишком мыльным — разработчики пытаются исправлять это повышением резкости, но не всегда помогает. Кроме того, из-за того, что информация берётся с предыдущего кадра, возникает эффект гостинга (остаточного изображения) — вокруг движущихся объектов возникают «шлейфы».

FXAA (Fast approXimate Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

FXAA относится к постпроцессинговому типу сглаживания. Весьма дешёвый способ убрать алиасинг с небольшими потерями производительности. FXAA смешивает соседние пиксели на готовом изображении, заранее определяя контрастные переходы. Недостатком можно назвать излишнее сглаживание, из-за чего некоторые текстуры и далёкие предметы будут мыльными, но FXAA станет отличным выбором на слабых компьютерах, так как оказывает очень маленькое влияние на FPS.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

MLAA (MorphoLogical Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Постпроцессинговый метод, работает не на видеокарте, а на процессоре, в отличие от всех остальных методов. MLAA ищет резкие отличия в цветах, затем идентифицирует L-, Z- и U-образные паттерны в построенном изображении, после чего смешивает цвета пикселей в таких фигурах.

На движущихся объектах могут возникать артефакты, связанные с появлением и исчезновением отдельных пикселей. Это характерно почти для всех типов геометрического сглаживания, в том числе и для MLAA. На тонких объектах данный артефакт проявляется в виде мерцания.

MLAA даёт более точный результат, чем у FXAA, но и сам процесс более требователен к ресурсам. Впрочем, если имеется мощный процессор, то влияние на FPS в играх будет минимальное.

SMAA (Subpixel Morphological Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

SMAA — это смесь FXAA и MLAA, работающая на видеокарте. В отличие от MLAA, ищёт различия не в цветах, а в яркости пикселей. Кроме того, использует не только L-, Z- и U-образные паттерны, но ещё и диагональные.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Слева направо: без сглаживания, SMAA, SMAA и рендер в увеличенном разрешении

Существуют разные типы SMAA:

  • SMAA 1x — стандартный алгоритм, определяет грани объектов при помощи локального контраста, вычисляемого поиском различий в яркости пикселей, ищет геометрические объекты и диагональные линии;
  • SMAA T2x — SMAA 1x + TAA;
  • SMAA S2x — SMAA 1x + MSAA;
  • SMAA T4x — SMAA 1x + MSAA + TAA.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Слева направо: сравнение, без сглаживания, SMAA 1x, SMAA T2x, SMAA T4x

Самый эффективный, как можно понять из описания, SMAA T4x, он же и самый прожорливый из этих вариантов. На скриншотах из Shadow of Tomb Raider заметно, как сильно меняется изображение при включении SMAA 1x, а вот разница между SMAA T2x и T4x есть, но она не такая существенная.

CMAA (Conservative Morphological Anti-Aliasing)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Как и предыдущие три, CMAA — это постпроцессинговый метод. Нагружает систему чуть больше, чем FXAA, но меньше, чем SMAA. В теории, CMAA обеспечивает куда более лучшую по качеству картинку, нежели примитивный FXAA, но это зависит от реализации: на примерах из DiRT Rally 2.0 отлично видно, что алгоритм не очень сильно влияет на сцену.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

На двух изображениях выше сложно увидеть разницу, но она есть: отдалённые предметы более чёткие и с меньшим количеством лесенок. Особенно видно это на мелкой траве вдалеке, а также на дальних конусах.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

CMAA исследует изображение на разрывы цветов, уточняет края фигур в конкретных участках, затем обрабатывает простые фигуры, причём только симметричные. Метод имеет повышенную временную стабильность в сравнении с SMAA и MLAA — за счёт этого в сцене меньше мерцаний.

DLSS (Deep Learning Super Sampling)

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Сравнительно новая технология, на данный момент доступная только на видеокартах NVIDIA RTX. Очень эффективный метод, который при небольших требованиях к ресурсам выдаёт качественную картинку. Конечно, если речь идёт о DLSS 2.0 и 2.1 — первая итерация технологии была очень сырой и сильно «мылила» картинку.

Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA
Какое сглаживание в играх лучше: DLSS, MSAA, TAA, FXAA или DMAA

Используя тензорные ядра, DLSS апскейлит отрендеренное в низком разрешении изображение за счёт использования глубокого машинного обучения. Такой подход позволяет добиться качества, сравнимого с рендером сцены в полноценном разрешении.

Конечно, технология всё ещё сыровата даже во второй версии, и иногда встречаются небольшие артефакты, но даже сейчас результат получается лучше, чем при использовании TAA. На картинке выше сравнивается DLSS и TAA. Издалека разницы нет, но при детальном рассмотрении видно, что с DLSS дальние объекты чётче, а рюкзак выглядит чуть мыльнее, но на нём нет лесенок.

Итог: какое сглаживание лучше выбрать

Технологий сглаживания действительно много, но каждая из них имеет право на существование. Какая же из них самая лучшая?


Или, по-нашему — … тоже антиалайзинг. Полноценного русского названия для этой технологии просто нет. Можно перевести его как «устранение эффекта лесенки» или «устранение ступенчатости». В играх его часто переводят как «сглаживание». Но все эти варианты не совсем корректны, и в среде людей, занимающихся графикой, просто используют кальку с английского названия.

Чтоб разобраться, что это за зверь такой — "антиалайзинг" — и с чем его едят, надо сперва выяснить, что такое «алайзинг» (aliasing) и откуда он берётся.

Внимание!
Расстановка точек над АА невозможна без некоторой суровой теории. И картинки по ходу тоже будут не красивыми скриншотами из ААА-игр, а специальными синтетическими примерами.
Если тебе такое не по силам / не интересно — крути вниз, к кратким выводам.

Дело в том, что компьютерная графика, как и всё компьютерное, дискретна.
Если брать конкретно изображение — то с точки зрения процессора это всего-навсего таблица из пикселей. Об этом ты и без меня знал. Но вот из-за этой фундаментальной вещи — начинаются проблемы.

Допустим, у нас в кадре есть чайник (так уж повелось у 3D-шников: брать его в качестве болванки). Для камеры он будет выглядеть вот так: Каждая ячейка — это отдельный пиксель.
В реальной природе (например, на матрице фотоаппарата) каждый пиксель получит средний цвет той области, которую он представляет. То есть,
Но так обстоят дела в реальной природе. Когда же изображение создаётся искуственно, компьютер не может получить средний цвет в области, потому что никаких «областей» и нет. Есть лишь пиксели. И цвета для них ему надо откуда-то «придумать». Что он и делает.
Рендеринговый движок при создании картинки «стреляет» из камеры лучами в центр каждого пикселя: … потом — смотрит, в какую точку на поверхности этот луч попал, и вычисляет в ней цвет.
Вот тут-то — и лежит наш камень преткновения, именуемый алайзингом.

Как ты уже, наверняка, понял, лишь одна эта точка раскрашивает весь пиксель. Хотя на самом деле должна влиять вся область, которую он охватывает.
И в компьютерной графике в принципе нет способа «по-честному» вычислить именно цвет области. Только так: стреляем семпл (англ sample, «проба») в каком-то направлении -> находим, куда он попал -> вычисляем там цвет -> назначаем цвет этого семпла соответствующему пикселю.
В результате — возникает сразу 2 проблемы:
1. Любой семпл в любую поверхность может либо попасть, либо нет. Только 2 варианта. Поверхность не может находиться в пикселе частично.
2. В связи с этим — рендеринговый движок может вообще «не увидеть» поверхность в каком-то пикселе. Просто потому, что соответствующий семпл в неё не попал.

Но даже на этом беды не заканчиваются. Как следствие, вылазит ещё одна проблема: муар.
Это такой неестественный эффект, который вылазит на мелкой-мелкой повторяющейся фактуре:
Слева — муар, справа — то, что должно быть:

Своего врага мы теперь знаем в лицо. Осталось разобраться, как с ним бороться.

Super-Sampling (SSAA)

Корень зла — в том, что каждый семпл «видит» цвет лишь в одной точке. И не важно, в центре пикселя мы его «стреляем» или сбоку: попав в одном направлении, он тем самым упускает всё остальное. Так что самое простое и очевидное решение — «стрелять» по несколько семплов в каждом пикселе, а потом усреднять их цвета. Это и есть суперсемплинг.
Решение, что называется, «в лоб» (брутфорсное), и это палка о двух концах. С одной стороны, брутфорс всегда корректнее, чем всякие имитации. С другой — он и ресурсов требует гораздо больше.
Фактически, если мы стреляем в каждом пикселе по 2, 4, 8 семплов — это всё равно что рендерить картинку в разрешении, которое больше во столько же раз. То есть, и производительность падает пропорционально.

Со временем придумали разные алгоритмы для генерации дополнительных семплов, но они лишь повышали качество картинки, а требовательность к ресурсам оставалась прежней. Взято с Википедии, там же — плюсы и минусы каждого метода. Если вкратце, то они улучшаются в таком порядке (если говорить только о реалтаймовой графике):
Grid:

Random / Stochastic:

Poisson disc:

Jittered:

Rotated grid:
Так что если ты увидишь в меню варианты вида «SSAA grid» и «SSAA rotated grid» — ты поймёшь, что речь как раз об этом. Grid — это самый первый (самый «дубовый») вариант, все остальные выглядят лучше при том же числе семплов.

Суперсемплинг также называют FSAA (Full-Scene AA), но на мой взгляд это весьма неудачная аббревиатура, т.к. возникают разночтения с FullScreen AA. То есть, с «полноэкранным антиалайзингом» — общим названием вообще всех видов АА как такового.
Ещё помнится, что я встречал в какой-то игре вариант перевода «избыточная выборка» — это тоже SSAA, только глазами надмозгов.

Multi-Sampling (MSAA)

В скором времени появилось развитие технологии суперсемплинга — мультисемплинг (надмозгами также именуемый «множественная выборка»). В отличие от SSAA, MSAA плодит (вернее, учитывает) дополнительные семплы не во всех пикселях, а лишь по мере необходимости. Обычно — только на границах объектов.
Кроме того, в этом алгоритме по-другому реализована генерация семплов: у некоторых пикселей они общие, что позволяет сократить их количество.
А также добавлено хитрое размытие/усреднение в проблемных местах. Так что даже без дополнительных семплов MSAA уже немного «гасит» алайзинг. Для наглядности я специально набросал в Юнити такую примитивно-контрастную сцену, чтоб можно было оценить антиалайзинг изолированно от всего остального.
SSAA:

MSAA:

Как видно, MSAA немного размывает картинку. И оттого она получается не столь корректной, как при «честном» SSAA. Но он гораздо быстрее по производительности, что позволяет, скажем, вместо SSAAx2 использовать MSAAx4.

CSAA (Coverage Sampling AA)

Разработка от NVIDIA. Это просто слегка усовершенствованный алгоритм MSAA. Делает то же самое, но немного по-другому, а оттого — ощутимо быстрее.
Грубо говоря, 8xCSAA позволяет получить почти такую же картинку, как при 8xMSAA, но при этом видеопамяти требует немногим больше, чем 4xMSAA.
Есть также симметричный алгоритм от AMD — CFAA (Custom-Filter AA).

АА как пост-эффект

MSAA/CSAA показали, что важно не только плодить дополнительные семплы на соседних пикселях с высокой контрастностью, но и просто умело размывать их. Что породило ещё кучу новых видов АА, которые уже и вовсе являются не трёхмерными технологиями, а чисто двухмерными.
Они оперируют с готовым изображением (как фильтр в фотошопе), просто по-разному размывая уже имеющиеся пиксели/семплы. Соответственно, применяются они в самом конце, что позволяет комбинировать их с «честным» SSAA и «условно-честным» MSAA.
Всего их на сегодняшний день понаплодилось — DLAA — Directionally Localized AntiAliasing
EQAA — Enhanced Quality AntiAliasing
EdgeAA — Edge AntiAliasing
FXAA — Fast approXimate AntiAliasing
GPAA — Geometric Post-process AntiAliasing
GBAA — Geometry Buffer AntiAliasing
MLAA — MorphoLogical AntiAliasing
NFAA — Normal Filter AntiAliasing
SRAA — Subpixel Reconstruction AntiAliasing
SDAA — Second Depth AntiAliasing
SMAA — Subpixel Morphological AntiAliasing
TAA — Transparent AntiAliasing

Я в настоящее время пользуюсь Юнити, так что для сравнения могу показать лишь эти виды: NFAA:

FXAA:

DLAA:

Сами по себе эти алгоритмы способны лишь устранить явную ступенчатость. Но, например, на длинных объектах тоньше пикселя (провода, верёвки) они ситуацию не спасают.
Впрочем, и использовать их надо не как самостоятельный АА, а лишь как дополнение к более брутфорсным братьям. Которое относительно дёшево позволяет немного повысить качество уже сглаженной картинки.

Кроме того, у всех пост-эффектных режимов сглаживания есть одно колоссальное преимущество: они дружат с deffered освещением. Что это такое — как-нибудь в другой раз, но штука эта в современных играх архи-нужная.

Из всего длиннющего списка пост-эффектных АА хочется выделить несколько:

FXAA (Fast approXimate AA) — самый эффективный метод по соотношению ресурсы/качество. Он весьма удачно справляется со сглаживанием на краях объектов. На верёвках, естественно, не особо помогает (как и все остальные в этом списке). Но он действительно шустрый. Что и позволило ему доминировать на консолях предыдущего поколения.
К сожалению, по природе своей, он не только сглаживает границы, но и слегка размывает текстуры. Однако это с лихвой оправдывается тем, что он практически бесплатен в сравнении с MSAA/CSAA.

MLAA (MorphoLogical AA) — неожиданный «ход конём». В отличие от всех остальных видов антиалайзинга, этот работает не на видюхе, а на проце. Ощутимо медленнее, чем FXAA, зато и картинка гораздо корректнее. SMAA (Subpixel Morphological AA) — смесь двух предыдущих. По сути своей — усовершенствованный FXAA, но:
а) он также использует алгоритм MLAA;
б) он очень тесно связан с SSAA/MSAA.
Для игрока это означает следующее: этот режим хоть и медленнее FXAA, но быстрее MSAA. Зато текстуры он не блюрит, и вообще по качеству соизмерим скорее со вторым, чем с первым.
Эпичная видео-демонстрация SMAA от СryTek под саундтрек из TRON: Legacy (vimeo)

TXAA (Temporal AA)

Самая убер-новая мега-последняя гипер-крутая технология сглаживания от NVIDIA.
Она комбинирует все существующие алгоритмы антиалайзинга: MSAA, пост-эффектный AA (TAA), а также собственный нвидишный новый фильтр временного (temporal) сглаживания.
До этого момента мы рассматривали неподвижную картинку. Но когда объекты в кадре движутся, они постоянно то попадают под новые семлы (в новые пиксели), то покидают их. В результате — возникает весьма неприятный эффект «дребезжания», который особо заметен при очень медленном движении (доля пикселя за кадр) и очень мелкой фактуре объектов (ширина полигона — примерно пиксель).
По идее, с этим эффектом уже весьма удачно справляется SMAA, но нвидия решила возвести решение этой проблемы в абсолют. Короче, лучше один раз увидеть, чем 100 раз услышать:
В отличие от SMAA, TXAA немного блюрит (размывает) картинку. Зато характерного «дребезжания» нет вообще.
ИЧСХ, во всех демонстрациях TXAA почему-то сравнивают не с другими режимами антиалайзинга, а с его отсутствием. Мне лично кажется, что в паре SMAA-TXAA выиграет первый, но по ютубу оценить трудно, а у самого прогнать синтетические тесты — нет возможности. Так что, как говорится, на вкус и цвет.

Краткие выводы

0. Отсутствие AA — жуть и безобразие.
1. SSAA — самый правильный, но и самый (до безобразия) тормозной алгоритм.
2. MSAA — относительно правильный, и приемлимо тормозной (если нет тех, что дальше).
3. CSAA — по качеству такой же, как MSAA, но значительно быстрее.
4. FXAA — практически бесплатный, но самый «мыльный».
5. MLAA — такой же, как CSAA/MSAA по качеству, но гораздо быстрее по скорости. И, как и FXAA, совместим с современными технологиями (deferred lighting).
6. SMAA — гораздо лучше по качеству, чем FXAA и MLAA, медленнее их по скорости, но по-прежнему быстрее, чем MSAA.
7. TXAA — адская вундервафля, про которую пока мало чего ясно. Соперничает с SMAA, но при этом стремится по скорости к MSAA, а по качеству — к FXAA. Но она единственная полностью устраняет эффект дребезжания (во всяком случае, так заявлено, а на глаз она это делает ничем не лучше, чем SMAA).

Если на поиск у тебя ушло около минуты или больше — поздравляю! Тебе можно вообще класть болт на все эти навороченные антиалайзинги. По той причине, что ты просто не увидишь лесенку в игре, как бы ты ни старался. Грубо говоря, разрешение твоего монитора — больше, чем разрешение твоего глаза (на эту область).
Включай FXAA как почти-бесплатный — и радуйся бескомпромиссному качеству картинки.

Если же ты не из тех счастливчиков с адскими видюхами и гигантскими мониторами, то, по крайней мере, ты теперь знаешь, как подбирать оптимальный режим сглаживания. И чем именно придётся жертвовать в том или ином случае.

Типы сглаживания и их принудительное включение в играх

Любой хотя бы раз видел в игре настройку «Сглаживание», оно же Antialiasing. Это функция, позволяющая устранить эффект лесенки на краях объектов и сделать изображение менее пилообразным. Производители видеокарт создали немало различных методик, общее количество которых исчисляется десятками. Многие из них устарели и забыты, а некоторые используются до сих пор.

В этой статье мы рассмотрим все актуальные типы сглаживания в играх, проведем сравнение, а также научимся их использовать.

Типы сглаживания

В качестве образца будет использоваться игра Track Mania вкупе с Full HD разрешением монитора. Видеокарта GTX 1070. Первый скриншот «чистый», без сглаживания. Просматривать рекомендуется в полном размере.


FXAA (Fast approXimate Anti-Aliasing)

Метод сглаживания, который затрагивает всю картинку изображения на этапе пост-обработки, то есть перед самым ее выводом на экран. Имеет 9 степеней качества. Неплохо сглаживает геометрию. Не устраняет прерывистую лесенку пикселей, что хорошо видно на проводах в воздухе. Не добавляет детализации и мылит текстуры.

Имеет практически идентичный, но малоизвестный аналог MLAA, который работает за счет процессора, а не видеокарты. Сглаживание MLAA доступно в крайне ограниченном количестве игр, поэтому рассматриваться не будет.


SMAA (Subpixel Morphological Anti-Aliasing)

Продвинутое пост-сглаживание, основанное на FXAA и MLAA. Дает ощутимо лучший результат, но потребляет чуть больше ресурсов видеокарты. Имеет четыре степени качества.

Детализации также не добавляет, однако дает меньше паразитных искажений, лучше сглаживает геометрию и меньше мылит изображение.


MSAA (Multi-Sample Anti-Aliasing)

Метод основан на выборочном масштабировании объектов в более высоком разрешении. Текстуры при этом не затрагиваются. Добавляет детализацию на контурах, уменьшает рябь картинки в движении. На современных видеокартах практически не затрагивает производительность. Распространенный и предпочтительный тип сглаживания.

Когда в играх вы выбираете степень сглаживания x2, х4 или x8 подразумевается именно MSAA.


SSAA (Super-Sample Anti-Aliasing)

Самое лучшее, самое правильное и самое требовательное к производительности сглаживание. В отличие от MSAA происходит масштабирование всех возможных объектов, а также шейдеров и текстур.

При выборе настройки SSAA x 4 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680x4320 от изначального 1920x1080.

Очень хорошо сглаживает лесенку пикселей, улучшает внешний вид текстур. Объекты вдали приобретают реальную четкость. Рябь в играх полностью исчезает, что делает картинку реалистичной и более приятной для глаз. В некоторых играх регулируется процентным соотношением в виде ползунка (может называться "масштабирование разрешения").

Такое сглаживание лучше использовать в старых играх, так как в современных будут просадки частоты кадров даже на самых мощных видеокартах.

К сожалению, далеко не все игры работают с SSAA сглаживанием, даже если попытаться включить его принудительно.

Иногда в настройках попадается SSAA x 0.5. При его использовании игровое разрешение уменьшается вчетверо (до 960x540), что ухудшает качество картинки, но дает прирост производительности.


DSR (Dynamic Super Resolution)

Технология от NVIDIA, позволяющая использовать разрешения, превышающие возможности вашего монитора. Максимальное значение x 4, что соответствует формату 2160p. По качеству немного превосходит SSAA x2.

И если SSAA работает с внутренним разрешением игры, то DSR запускает игру в настоящем 4К, которое затем даунскелится до родного разрешения монитора. Это дает возможность снимать видео и делать скриншоты в 3840x2160 на мониторе с меньшим разрешением.

Из минусов интерфейс в играх может стать очень мелким и нечитаемым, если игра не оптимизирована под масштабирование игровых элементов. Второй минус это смена чувствительности мыши, курсор будет двигаться медленнее, так как ему нужно пройти больше пикселей.

В отличие от прочих типов сглаживания, DSR можно активировать в любой игре, в которой есть возможность выбора поддерживаемых разрешений.

У AMD есть свой аналог, названный VSR (Virtual Super Resolution).

Единственное полезное значение это x4, дающее реально качественное сглаживание. На других значениях картинка мало того, что не сглаживается, так еще и становится более зубчатой.


Комбинации и ответвления

Производители частенько любят хитрить со сглаживанием, комбинируя методы. В качестве примера TXAA: на самом деле это всего лишь одновременная работа MSAA и FXAA низкого качества. Адаптивным сглаживанием называют SSAA + MSAA. Многокадровое сглаживание MFAA это просто надстройка для MSAA, призванная улучшить качество (через панель управление не заработала ни в одной игре).

Еще один известный тип сглаживания это CSAA, по сути тот же MSAA, но потребляющий чуть меньше ресурсов. Считается устаревшим и из новых видеокарт удален. Попытка принудительной активации приводит к вылету драйвера.

Грубо говоря, практически все сторонние типы сглаживания являются либо модификацией MSAA, либо комбинацией с использованием различных пост-эффектов.

Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360x8640), при 26 кадрах в секунду.

В итоге игра 2006 года почти "поставила на колени" GTX 1070. Ну а про игры типа Metro Redux и говорить нечего, всего 1-3 фпс.

Использование

FXAA

Для активации нам понадобится программа FXAA Tool.

В главном окне программы убираем галочку Pre Sharpen. Далее нажимаем кнопку "Add", программа попросит нас ввести имя профиля (можете написать любое), а затем необходимо указать путь к папке с игрой.


Переходим во вкладку "AntiAliasing". Двигая ползунок влево и вправо, мы изменяем баланс между производительностью и качеством. После того, как необходимый уровень выбран, нажимаем кнопку "Save". Теперь при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать достаточно в главном меню нажать кнопку "Remove".


SMAA

Для его использования необходимо скачать программу SweetFX.

Первым делом нажимаем кнопку Add new game и указываем путь на файл запуска игры (.exe).

В списке игр появится строчка с именем файла, щелкаем по ней один раз.

Нажимаем кнопку Add SweetFX.


Заходим в настройки SweetFX Injector settingsи выбираем желаемый уровень качества.


Лучше всего поставить SMAA_PRESET_HIGH. Нажимаем Save settings, а затем в главном окне Save new config.


Как и в случае с FXAA Tool при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать необходимо в главном меню нажать кнопку “Remove SweetFX”.

MSAA \ SSAA \ VSR (Radeon)

Новая панель управления от AMD максимально упрощена. Чтобы активировать VSR, нужно лишь нажать соответствующую кнопку в разделе "Дисплей". После этого в играх появятся новые доступные разрешения.


Активация MSAA и SSAA также не доставит никаких проблем. Переходим во вкладку «Игры» и изменяем несколько настроек.

  1. Режим сглаживания — переопределить настройки приложения.
  2. Ставим желаемый уровень сглаживания (например 4X).
  3. Выбираем метод сглаживания.

Избыточная выборка — это SSAA, а множественная выборка — это MSAA.


MSAA \ SSAA \ DSR (GeForce)

Для включения DSR необходимо перейти в раздел «Управление параметрами 3D» и выбрать строчку «DSR-Степень».


Появится небольшое окно, в котором вы сможете выбрать, во сколько раз большие от оригинального разрешения вам нужны. К примеру, x1.78 соответствует разрешению 2560x1440, а x4 соответствует 3840x2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.


Также необходимо выставить параметр «DSR-плавность» на значение 0 %. В противном случае изображение будет слегка размыто.


Для включения MSAA, в этом же разделе (Управление параметрами 3D) нужно изменить два параметра.

  1. «Сглаживание — режим» выставляем «Замещение настроек приложения».
  2. «Сглаживание — параметры» выставляем желаемую степень сглаживания (например 4x).


Затем нажимаем кнопку «Применить».

Для настроек 3D имеется две вкладки: глобальные параметры и программные настройки. Если вы меняет параметры в первой вкладке, то они применяются ко всем приложениям, а если вы меняете значения во второй вкладке, то настройки применяются только к выбранной вами игре.

Для SSAA сглаживания настройки в панели управления не предусмотрено (исключение — старые видеокарты).

Включить его получиться только с помощью сторонней утилиты NVIDIA Profile Inspector.

  1. Запускаем программу и ищем раздел 3-Antialiasing.
  2. Для строки Antialiasing — Mode меняем значение на Override any aplication settings.
  3. Для строки Antialiasing - Setting выбираем уровень сглаживания. Рекомендуется либо 2x2 Supersampling, либо 4x4 Supersampling.
  4. Нажимаем кнопку Apply changes.

Для сброса настроек вы можете нажать на значок NVIDIA.


Сравнение

Для сравнения качества было решено выделить фрагмент картинки, затрагивающие провода, текстовую надпись Track Mania и дорожные перила.


Вторым фрагментом выступит автомобиль, для оценки сглаживания изгибов и текстур.


А теперь сравним влияние сглаживания на FPS в игре.


Исходные материалы

Все использованные в статье игровые скриншоты, а также несколько дополнительных вы можете скачать в архиве по ссылке.

Track Mania Nations — игра, использованная для демонстрации типов сглаживания доступна для бесплатного скачивания на странице в Steam.

Вывод

Мы изучили эффективность сглаживания на примерах, а также научились принудительно его использовать c помощью различных программ и панели управления видеокартой.

Теперь вы в любой момент сможете улучшить качество изображения, даже если в самой игре настройки сглаживания не предусмотрено.

Читайте также: