Для чего нужно сглаживание в играх. FXAA — новый алгоритм сглаживания от NVIDIA

Для чего нужно сглаживание в играх. FXAA — новый алгоритм сглаживания от NVIDIA

20.07.2019

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

Что такое сглаживание? Наиболее простой ответ дает Википедия.
Сглаживание (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. Усовершенствованный (немного) 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 сглаживание порой вовсе не требуется. Либо можно применить самое простое CSAA или MSAA 2x. Не более. Интересно, как сложится картина лет через 5-7, когда 4k разрешение приобретет массовость. Я специально не стал приводить примеры комбинирования разных методов сглаживания, что бы не вызвать у вас путаницы. Достаточно этих алгоритмов, что бы вы могли определиться, какое сглаживание подходит для вашей системы и для вашего восприятия.

Здравствуйте.

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

Подавляющее большинство игроков знают о «лесенках» на краях объектов и возможном решении этой проблемы - «anti-aliasing», или «сглаживание». Очень подробно этот вопрос описан в статье Дона Волигроски (Don Woligroski) Anti-Aliasing Analysis, Part 1: Settings And Surprises (русский перевод). Также неплохое сравнение с примерами игр текущего поколения игровых консолей есть у Digital Foundry - The Anti-Aliasing Effect (англ.) . Вкратце, всё сводится к одному: сглаживание - это здорово, восприятие картинки сильно вырастает в цене, в современных реалиях игропрома продукты с малым сглаживанием или даже без оного находятся в категории освистанных (в первую очередь - фанатами платформ-конкурентов, но тем не менее), но вот реализация качественного сглаживания оставляет желать лучшего, главным образом - из-за недостаточной вычислительной мощности целевого оборудования. В данном случае в гораздо более выгодных условиях оказываются, конечно же, апологеты игры на ПК, т.к. на мощность их железа оказывает влияние только материальный фактор, зато консольщики не упускают случая позубоскалить над ПКшниками на предмет «PC HAZ NO GAEMZ!», мол, игр у вас нет, играете в графику. Я специально не буду затрагивать этот вопрос, потому что рационально-объективных доводов в пользу субъективного ощущения «тёплого лампового гейминга» быть не может в принципе, это вопрос личного выбора со всеми вытекающими. Уже существующие и использующиеся алгоритмы описаны по вышеуказанным ссылкам, поэтому перейду непосредственно к теме: что такое FXAA, с чем его едят и насколько это вкусно.

Начнём с теории. Если быть предельно точным, то FXAA - не такой уж новый алгоритм: впервые он был использован в MMORPG Age of Conan и уже отметился в шутере F.3.A.R., но я буду рассматривать его, как новый, благодаря интересному решению, которое попалось мне на глаза на часто посещаемом форуме (спасибо h0w1er ). FXAA - F ast approX imate A nti-A liasing, это более производительное решение по-сравнению с традиционным MSAA (Multi-Sampling Anti-Aliasing). Это однопроходный пиксельный шейдер, который обсчитывает результирующий кадр на этапе постобработки. Он создан быть более быстрым и менее требовательным к памяти по-сравнению с MSAA, «оплачивая» свои «плюсы» точностью работы и качеством, хотя на самом деле всё не так страшно, как это звучит. FXAA также имеет ряд преимуществ, включая улучшенное сглаживания спекуляров и субпикселей (речь о поверхностях размером меньше одного пикселя, «лесенки» заставляют такие объекты мерцать). В официальном документе (PDF) создатель FXAA Тимоти Лоттс (Timothy Lottes) заявляет, что для алгоритма FXAA с настройками среднего качества («золотая середина» между качеством и производительностью) постобработка кадра разрешением 1920x1200 на GTX 480 занимает меньше миллисекунды. Основные преимущества FXAA, со слов Тимоти, заключаются в алгоритме сглаживания субпикселей FXAA, работающем лучше оного в MLAA , достаточность для работы железа уровня DX9, постообработке кадра за один проход и, по-моему, самое интересное - независимость от используемого GPU Compute API . Но есть и одна неприятность - необходимость для разработчиков встраивать эту технологию сглаживания в свои игры, когда как традиционные методы сглаживания работают (или не работают) на уровне драйверов. Другими словами, пока программисты не используют в своих движках код FXAA для сглаживания, нужного эффекта мы не получим, влючить FXAA извне официально было нельзя. До недавних пор.

А теперь - танцы практика. Практиковаться будет на World of Tank, версия 0.6.6.

Вариант без сглаживания (No AA) показывает явные «эскалаторы», и хоть модели танков достаточно большие и детализированные, артефакты видно совершенно явно, особенно на тонких объектах, о которых дополнительно ниже.

Вариант встроенного сглаживания (Edge AA) пытается смазывать края объектов, но у него это получается довольно посредственно, не говоря уже об уходе картинки в небольшое мыло.

Следующий вариант - FXAA, результат налицо: артефактов по краям нет, однако и мыльности по-сравнению с noAA тоже немного добавилось, хотя с EdgeAA разница почти незаметна.

Ну и вариант FXAA Sharpen. Gast в версии beta 6 добавил фильтр резкости, взятый из , и результат очень достойный: мыло исчезло, текстуры стали выглядеть даже резче, чем в оригинале, а «лесенок», несмотря на этот фильтр, практически не добавилось. Из-за незапланированной авторами резкости текстуры башни чуть-чуть «выбило» (синяя зона), но в игре, могу вас уверить, это абсолютно незаметно.

А что же с производительностью? Да практически ничего плохого. К сожалению, движок WoT живёт в своём мире и всплески/падения производительности могут выскакивать на самом ровном месте. У меня получилось следующее:

Картинка «In battle no AA» - то, о чём я говорил выше: тонкие деревца трещат от артефактов, тогда как на вариант «In battle FXAA Sharpen» картинки гораздо приятнее глазу, за исключением проблем фильтра резкости, который уж слишком тонкие линии сужает в толщину волоса, как, например, навесной прицел артиллерии. А количество кадров в секунду в варианте FXAA даже выше, несмотря на то, что эти два скриншота сделаны с разницей в 1 секунду и танк был неподвижен.

На самом деле при длительном тесте была получена цифра ~10-12% - на столько падает производительность при использовании FXAA, тогда как MSAA 4x, с качеством сглаживания которого и конкурирует FXAA, в довольно часто даёт падение вдвое больше. Если будет интересны сравнения - больше цифр и картинок можно найти в статье NVIDIA"s New FXAA Antialiasing Technology сайта [H]ard|OCP , где я почерпнул часть информации, а в завершении своего небольшого обзора соглашусь с Марком Уорнером @ HardOCP: при должной реализации у FXAA большое будущее, особенно на консолях, где ресурсы жёстко ограничены, а имея возможность настроить конфигурацию инъекции по своему вкусу, многие уже сейчас без помощи разработчиков, смогут насладиться красивой картинкой в любимой игре.

UPD. На 10 августа уже появилась более настраиваемая инъекция , так сказать, «сборная солянка» от участников обсуждения.

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

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

Разрешение экрана

Пожалуй, этот параметр является одним из главных, влияющих как на качество картинки, так и на производительность игры. Данный параметр зависит исключительно от матрицы ноутбука, и поддержки данного разрешения игрой (от 640х480 до 1920х1080). Тут все просто и пропорционально, чем больше разрешение, тем четче картинка и больше нагрузка на систему, и, соответственно, наоборот.

Качество графики

Практически в каждой игре есть свои стандартные настройки графики, которые вы можете использовать. Обычно это «низкие»», «средние», «высокие» и в некоторых играх присутствует графа «ультра». В эти установки уже изначально заложен набор настроек (качество текстур, сглаживание, анизотропная фильтрация, тени… и многие другие) и пользователь может выбрать профиль, который лучше всего подходит под его конфигурацию ПК. Думаю тут все понятно, чем лучше настройка графики, тем реалистичнее смотрится игра, и, конечно же, возрастают требования к устройству. Ниже вы можете посмотреть видео, и сравнить качество картинки во всех профилях.


Далее мы рассмотрим более детально настройки в играх по отдельности.

Качество текстур

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

Качество теней

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

Качество эффектов

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

Качество окружающей среды

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

Покрытие ландшафта

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

Анизотропная фильтрация

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

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

Сглаживание

Принцип работы сглаживания таков: до вывода картинки на экран она рассчитывается не в родном разрешение, а в двукратном увеличении. Во время вывода картинка уменьшается до нужных размеров, причем неровности по краям объекта становятся менее заметными. Чем больше исходное изображение и коэффициент сглаживания (x2, x4, x8, x16), тем меньше неровностей будет заметно на объектах. Собственно само сглаживание нужно для того чтобы максимально избавится от «лестничного эффекта» (зубцов по краям текстуры).

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

Multisample anti-aliasing (MSAA), в отличие от FSAA, сглаживает только края объектов, что приводит к небольшому ухудшению графики, но при этом экономит огромную часть вычислительной мощи. Так что если вы не обладаете топовой игровой видеокартой, лучше всего использовать MSAA.

SSAO (Screen Space Ambient Occlusion)

В переводе на русский означает «преграждение окружающего света в экранном пространстве». Является имитацией глобального освещения. Увеличивает реалистичность картинки, создавая более «живое» освещение. Дает нагрузку только на GPU. Данная опция значительно уменьшает количество FPS на слабых графических адаптерах.

Размытие в движение

Также известно как Motion Blur. Это эффект, смазывающий изображение при быстром передвижении камеры. Придает сцене больше динамики и скорости (часто используется в гонках). Увеличивает нагрузку на GPU, тем самым уменьшает количество FPS.

Глубина резкости (Depth of field)

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

Вертикальная синхронизация (V-Sync)

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

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

Заключение

Выше изложены основные, но далеко не все настройки в играх. Стоит напомнить, что каждая игра имеет свой уровень оптимизации, и свой ряд настроек. В некоторых случаях игры с лучшей графикой будут идти на вашем ноутбуке быстрее, чем неоптимизированные игры с более низкими требованиями. Большинство игр позволяет использовать как уже готовые настройки, так и задавать вручную каждый отдельно взятый параметр. Часть из рассмотренных выше эффектов поддерживается только в новых DirectX 11 играх, а в более старых с поддержкой DirectX 9 их просто нет.

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

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

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


Начнем с того, что AA (Anti-Aliasing, Сглаживание ) - способ устранения "ступенчатости" на краях объектов, линий, которые находятся под наклоном и не являются ни строго вертикальными и ни строго горизонтальными. Особенно "лесенка" заметна на стыках полигонов с разными цветами.
В играх может использоваться, когда видеокарте не хватает мощности для вывода изображения в высоком разрешении, где все детали плавные и приятны глазу. Если AntiAliasing отрабатывает хорошо и качественно, то из-за этого страдает производительность, падает фпс в играх. Если сглаживает плохо, то страдает графика, появляется замыливание картинки, артефакты. Поэтому, если есть возможность играть при высоком разрешении и фпс при этом падает не на много, не включайте AA, играйте на высоком. Так же из особенностей, сглаживание "лесенки" может быть включено на уровне настроек видеокарты и при этом еще и на уровне приложений. Эффект при этом "усиливается", если используется первый и второй тип сглаживания. Поэтому если собрались испытывать антиальясинг, убедитесь чтобы оно было включено где то в одном месте, дабы не получить замыленность.

Первый тип

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

SSAA (SuperSample Anti-Aliasing , Избыточная выборка сглаживания) - Самое тяжелое, но и самое качественное и жутко нагружающее видеокарту. В ускорителях применяется регулярная маска размером от 2x1 до 4x4. От этого и появляется нагрузка, при разрешении 1920x1440 и маске 2х2 строится кадр с разрешением 3840х2880 (что требует памяти в 4 раза больше), после этого, усредняются цвета всех суб-пикселей в маске и уже после кадр сжимается и подается на вывод на экран в исходном разрешении.
Существовала технология в основном до DirectX 8, пока не появился MSAA. Из-за большого влияния на фпс от него отказались. Но так как мощность видеокарт перманентно росла, NVIDIA его вернули в строй и используется для игр с поддержкой DX9, DX10, DX11.
Хотите 60 фпс? Тогда сами сможете прикинуть под какой нагрузкой будет работать видеоадаптер. Однако, от картинки вы получите наслаждение. Данный метод рекомендуется обладателям производительных видюх для современных игр.

MSAA (MultiSample Anti-Aliasing , Множественная выборка сглаживания) - пришел на смену SSAA, потребляя меньше ресурсов, но и результат дает немного другой. Изображение по-прежнему рендерится в большем разрешении, но производительность достигнута за счет AA только краев объекта, а не всей картинки как в SSAA. Из минусов, на прозрачных полигонах (стекла, вода..) данный метод не работает, поэтому лесенку иногда можно лицезреть. И так как сглаживается только часть изображения, то можно наблюдать еще и артефакты. Плюс несовместимость с методом отложенного освещения. Нужно помнить, что MSAA выгоднее юзать на низких разрешениях. Чем оно выше, тем накладнее по ресурсам. Так же рекомендуется обладателям топовых видеокарт, с большим количеством видеопамяти.

CSAA (Coverage Sampling Anti-Aliasing , Выборка сглаживания с перекрытием)
- это продолжение эволюции SSAA->MSAA->CSAA, который сохранил совместимость с алгоритмами используемых в железе. Улучшение достигнуто за счет того, что в буфер кадра передается еще информация о субсэмпле с соседнего пикселя. Что в итоге помогает рассчитать более качественное сглаживание.
При равных уровнях (4,8..) CSAA и MSAA, качество кадра всегда будет у CSAA выше, а по производительности они друг другу не будут уступать.

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

FSAA (Full Scene Anti-Aliasing, Полноэкранное сглаживание) - То же что и SSAA, но от AMD и с небольшими отличиями.

QCSAA (Quality Coverage Sampling Anti-Aliasing , Выборка сглаживания с перекрытием ) - не трудно догадаться, что это улучшенная версия CSAA, только использует вдвое больше сэмплов для анализа

EQAA (Enhanced Quality Anti-Aliasing , Сглаживание повышенного качества) - У NVidia - CSAA, у AMD - EQAA. Отличаются положениями сэмплов и в зависимости от режима их количеством.

AAA (Adaptive Anti-Aliasing, Адаптивное сглаживание) - Как известно у MSAA есть проблема при сглаживании краев на прозрачных объектах. Данный способ призван устранить такую проблему. Является синергией мультисемплинга (MSAA) и суперсемплинга (SSAA). Как можно догадаться, данный вид ресурсоемок и рекомендуется обладателям топ карт. Используется у AMD.

TrAA (Transparency Anti-Aliasing , Прозрачное сглаживание) - тоже что и AAA, только от NVIDIA.

TrAAA (Transparency Adaptive Anti-Aliasing , Адаптивное Прозрачное сглаживание) - см. TrAA

TrMSAA (Transparency Multi-Sampling Anti-Aliasing, Прозрачная множественная выборка сглаживания) - использует краевой метод (MSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TMAA

TrSSAA (Transparency Super-Sampling Anti-Aliasing, Прозрачная полноэкранная выборка сглаживания) -
использует полноэкранное сглаживание (SSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TSAA

OGSSAA (Ordered Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с упорядоченной решеткой) - Классический SSAA в котором используется решетка с упорядоченной выборкой, выровненная по вертикали и горизонтали.

RGSSAA (Rotated Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с повернутой решеткой) - Все тот же SSAA, с уточнением расположения решетки наклоненной под определенным углом. Данный метод показывает качество немного лучше, чем OGSSAA, при почти горизонтальных или вертикальных краях объектов (слегка наклоненных).

SGSSAA (Sparse Grid SuperSampling Anti-Aliasing , Избыточная выборка сглаживания с разряженной решеткой ) - выборки располагаются на регулярной сетке, как в OGSSAA. Но выборка производится лишь на некоторых узлах сетки. Здесь заложен компромиссный подход между производительностью и качеством изображения. Метод используется у NVidia

JGSSAA (Jittered Grid Super-sampling Anti-aliasing, Избыточная выборка с искаженной решеткой) - каждый пиксель так же разбивается на субпиксели, но выборка сэмплов располагается случайно (Стохастическая) или со смещением внутри субпикселя.

HRAA (High-Resolution Anti-Aliasing , Полноэкранное сглаживание для высоких разрешений) - метод полноэкранного сглаживания в NVIDIA с 5-ю сэмплами. Качество как 4xSSAA, по нагрузке как 2xSSAA.

HRAA (Hybrid Reconstruction Anti-Aliasing, Гибридное сглаживание) - решение использующее лучшие практики, на основе краевого метода (MSAA, CSAA), постобработки с аналитикой и временного антиалиасинга.

EDAA (Edge Detect Anti-Aliasing, Краевое сглаживание) - так же краевой метод + обсчитываются контрастные переходы еще и на объектах и текстурах. Что в итоге сильнее садит fps. Условно можно назвать это аналогом CSAA, только от AMD. Это разновидность CFAA, описанного ниже.

CFAA (Custom Filter Anti-Aliasing , Специализированные фильтры сглаживания) - Детище AMD. Включает в себя 4 фильтра: box, narrow-tent, wide-tent, edge-detect. Каждый фильтр, это разный подход к реализации того же MSAA.
box - стандартный подход к MSAA
narrow-tent - аналог CSAA
wide-tent - так же аналог CSAA, только количество субпикселей больше в два раза
edge-detect - при проходе фильтра edge detection по отрендеренному изображению, для определенных им пикселей, которые определяются как границы полигонов или резкие цветовые переходы, используется более качественный метод антиалиасинга с большим количеством сэмплов, а для остальных пикселей с меньшим.

QAA (Quincunx Anti-Aliasing, Шахматное сглаживание) - метод от NVidia, в основе которого лежит учет не только своих субпикселей, но и данные берутся от соседних. При этом, при расчете финального цвета, свой сэмпл имеет вес больше, чем данные с соседних. В расчет берется 5 точек. По качеству 2xQSAA, приблизительно так же выглядит как 4xMSAA.

FAA (Fragment Anti-Aliasing, Частичное Сглаживание) - разработана компанией Matrox. Сглаживание применяемое к краям объектов. Отличие от SSAA и MSAA, в том, что края и сами объекты не увеличиваются в несколько раз по маске. Каждый пиксель делится на 16 частей и если покрытие полное, то пиксель отправляется в кадровый буфер, если неполное, то уходит в отдельный буфер. Такой пиксель считается фрагментированным, при чем в дальнейшем над ним проводится анализ и он видоизменяется. Такая реализация очень сильно экономит ресурсы видеокарты. Но есть и проблема, алгоритм определения краев не всегда корректно обнаруживает те самые края. Проблема с прозрачными объектами во всей красе.

TXAA (Temporal approXimate Anti-Aliasing , Временное приблизительное сглаживание) - технология от Nvidia, которая использует основу MSAA. В формуле расчета используется время, данные по пикселям из предыдущих кадров и данные из обрабатываемой сцены. После чего происходит усреднение по цвету. Это позволяет избавиться от мерцания и дерганья объектов в игре. Вдали дает качественную картинку, однако немного мылит близкие объекты и требования к ресурсам почти как для MSAA, хотя качество при тех же значениях лучше.
Со слов производителя, TXAA 2x сравнимо по качеству с 8xMSAA, но при по затратам производительности сопоставимо как с 2xMSAA, а TXAA 4x выше по качеству чем 8xMSAA, но по затратам производительности сопоставимо как с 4xMSAA. Отлично подходит для сглаживания в динамике.

TSSAA (Temporal Super Sampling Anti-Aliasing, Временная избыточная выборка сглаживания) - Этот метод, что и TXAA, только не привязан к видеокартам NVIDIA и завязана на суперсэмплинг.


Второй тип
Влияние на фпс слабое. Так называемые методы пост-обработки, когда сглаживание происходит в момент вывода изображения на экран.

FXAA (Fast approXimate Anti-Aliasing , Быстрое приблизительное сглаживание) - разработка NVidia. Из названия видно, что это более производительное сглаживание по-сравнению с традиционным MSAA. Алгоритм использует простой способ обнаружения разрыва цветов фигур. В момент вывода изображения на экран усредняются по цвету все соседние пиксели. Это не нагружает видеокарту, но жутко мылит кадр. Далекие и затуманенные объекты в игре будут почти не узнаваемы. Такое сглаживание имеет смысл включать на слабых машинах, ноутбуках, нетбуках и прочих эконом вариантах.

MLAA (MorphoLogical Anti-Aliasing , Морфологическое сглаживание) - условный аналог FXAA. Методика придумана компанией Intel. Алгоритм, ищет пиксельные границы на каждом кадре, похожие на Z, L и U буквы и смешивает цвета соседних пикселей, входящих в каждую такую часть. Алгоритм переведен на использование процессора, а не GPU. Отсюда можно рекомендовать его обладателям слабых видеокарт и с более менее производительным процессором. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA. Имеется реализация у AMD, но технически может использовать и NVidia. Есть проблема: сглаживание не отрабатывает на прозрачных текстурах. Поэтому в довесок этой постобработки нужно подключать еще и TrAA для улучшения изображения. Время обработки занимает 0,9 мс. Так же есть методики MLAA реализованные на GPU.

SRAA (Subpixel Reconstruction Anti-Aliasing , Субпиксельное восстанавливаемое сглаживание) - новый двухпроходный алгоритм от NVidia. SRAA очень схожа с MLAA , но работает с буферами глубины и картами нормалей, из-за чего лучше определяет границы для сглаживания и затененные края. Время выполнения в целом очень низкое, основное время в алгоритме уходит на обработку затенения. На выходе могут появляться артефакты. Для сравнения на сглаживание изображения с разрешением 1280×720 методом SSAA уходит около 5-10 мс, а у SRAA примерно 1,8 мс.

SMAA (Enhanced Subpixel Morphological Anti-Aliasing , Субпиксельное морфологическое сглаживание) - комбо из MSAA/SSAA и MLAA. По сути несколько улучшенный MLAA с добавлением локального контраста и поиском паттернов. Иногда может добавляться еще и временная избыточная выборка. Ресурсов потребляет больше чем MLAA, но задействует при этом видеокарту, а не процессор.
Можно встретить разновидности:

  • SMAA 1x : классический алгоритм SMAA, включающий точный поиск расстояний, работа с локальным контрастом для определения краев, геометрических объектов и поиск диагональных линий. Время обработки занимает 1,02 мс.
  • SMAA T2x : SMAA 1x +техники из TSAA. Время обработки занимает 1,32 мс.
  • SMAA S2x : SMAA 1x +техники из MSAA. Время обработки занимает 2,04 мс.
  • SMAA 4x : SMAA 1x +техники из SSAA/MSAA и TSAA/TMSAA. Время обработки занимает 2,34 мс.

CMAA (Conservative Morphological Anti-Aliasing , Консервативное морфологическое сглаживание) - среднее между FXAA и SMAA 1x. Идеально подходит для слабых и средних графических процессоров. Отличие от FXAA происходит за счет обработки линий краев длиной до 64 пикселей. Используется алгоритм, с обрабатыванием только симметричных разрывов цветов, чтобы избежать ненужного размытия. Отличие от SMAA 1x происходит за счет менее полного сглаживания объектов, т.к. обрабатывается меньше типов фигур и обладает повышенной временной стабильностью, т.е меньше мерцаний объектов.

Nvidia представила новый графический драйвер 334.75 WHQL серии Game Ready. В нем оптимизирована поддержка World of Warcraft’s: Warlords of Draenor, Far Cry 4, Dragon Age Inquisition и The Crew. Кроме этого, в драйвере присутствует расхваленная представителями Nvidia функция MFAA (Multi-Frame Anti-Aliasing).

Что такое MFAA?

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

Каждая из этих технологий искала компромисс в производительности. AMD и Nvidia экспериментировали с разнообразными фильтрами и временными сглаживаниями. В результате у Nvidia появилось TXAA. MFAA отличается от TXAA тем, что последнее требует от разработчиков игры рендеринга на каждом отрезке, нужно использовать информацию из прошлого кадра, чтобы получить на выходе сглаженное изображение. Этот метод придумали, чтобы разработчики могли делать изображение «киношным» без ущерба производительности.

MFAA похоже на TXAA тем, что оно тоже использует временный сэмплинг в своем алгоритме, но не использует фильтры-шейдеры и не требует такой вовлеченности движка. Nvidia все еще работает над добавлением поддержки MFAA в большее количество игр (уже доступен для двадцати игр, вкючая Assassin’s Creed Unity, Battlefield 4, Civilization 5, Civilization: Beyond Earth, Crysis 3 и Titanfall).

Целью MFAA является достижение равноценного сглаживания при более высокой частоте кадров. В идеале 4 x MFAA по производительности должен соответствовать 2 x MSAA, но обеспечить качество как у 4 x MSAA или выше.

Одна из особенностей видеокарт серии Maxwell - их MFAA-система поддерживает гораздо больший набор семплинговых шаблонов, про сравнению с любым графическим процессором Nvidia предидущих поколений. Некоторые еще помнят, как для некоторых игр 5-6 лет назад можно было заставить определенные карты GeForce использовать суперсемплинг с упорядоченной сеткой (OGSSAA). Такой тип сглаживания наносил огромный ущерб производительности и размывал окончательное изображение, но позволял практически полностью убрать неровные линии. Как правило, графический процессор имеет заранее запрограммированный набор методов, хранящихся в ПЗУ, и пользователь ничего не мог в них поменять - если чип использовал OGSSAA с квадратным узором, то никто ничего не мог с этим поделать.

Карты класса Maxwell (GTX 980, GTX 970 и GTX 980M) хранят шаблоны в оперативной памяти и могут варьировать их в зависимости от активности на экране. В результате должно получиться более кчественное сглаживание.

Тестирование качества изображений с MSAA, TXAA, и MFAA

Тестировалась игра Assassin’s Creed Unity на системе Core i7-4970K с 16ГБ оперативной памяти DDR3-2133 и видеокартой Nvidia GeForce GTX 980.

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

По порядку идут 4 x MSAA, TXAA и 8 x MFAA.

Чтобы создать такое изображение с MFAA, использовался Shadowplay. Видите разницу между MSAA и MFAA? Можно заметить серые зоны в промежутках между железными решетками. Сглаживание MFAA не такое мягкое, как TXAA. Оно использует другой алгоритм шейдеров, но MFAA обрабатывает некоторые переходы искуснее.

На этих скриншотах (MFAA) присутствуют некоторые визуальные странности, которые не заметны в игре. Это искажение вызвано тем, что скриншоты делает FRAPS, а не движок игры.
4xMSAA, TXAA, 8x MFAA:

Разница сглаживания линии MFAA и MSAA:

MSAA слева, а MFAA справа. Эта картинка показывает одно из главных преимуществ системы MFAA: в отличие от MSAA, она лучшее смешивае оттенков. Неровные линии появляются из-за разницы в цвете и линиях. MFAA сгладит контраст, используя тени.

Между 8 x MFAA и 4 x MSAA ощущается значительная разница. Nvidia утверждает, что 4 x MFAA должена работать быстрее 4 x MSAA.

Влияние MSAA, MFAA и TXAA на частоту кадров

TXAA является наиболее приемлемым вариантом, но каково влияние каждой системы на частоту кадров?

Мультисемплинг в Assassin’s Creed Unity очень сильно бьет по графическому процессору. Сможет ли MFAA отыграть несколько очков в производительности?

Для GTX 980 ответ оказался утвердительным, однако не стоит слишком обнадеживаться. Такой метод сглаживания лучше подходит средним видеокартам, у которых есть проблемы с современными играми, но, к сожалению, он доступен только для GTX 980 и 970. Визуальная разница между 4x MFAA и 4x MSAA незначительная, и Nvidia утверждает, что выбор в пользу 4 x MFAA может улучшить производительность по сравнению с MSAA на 30%.

Достойное начало

На данный момент MFAA - второстепенная функция со скромной историей, коротким списком игр и ограниченным количеством совместимых карт. Но в перспективе всё может измениться. Разрешение 4К снизило потребность в сглаживании, но не исключило его полностью. Легковесный подход Nvidia может быть лучшим способом решения этой задачи, так как он позволяет избежать неудобства более сложных методов.

Будем надеяться, что эта функция просочится в средний и бюджетный сегменты линейки Maxwell в ближайшее время. Легковесное изображение в распространенных системах так же важно, как и топовая графика. Прошло только 5 лет с тех пор, как FXAA MLAA представлены для Intel. Это означает, что рынок систем сглаживания может открыться для новых подходов, особенно тех, которые будут просты в использовании для разработчиков.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows