Антиальясинг что это в играх
Да кто такой этот ваш MSAA и SSAA?!
Вы часто видели эти MSAA и SSAA в настройках — и выбирали опцию наугад. Знали примерно, что эти загадочные буквы связаны со сглаживанием картинки, и этого вам всегда хватало. Но червячок сомнений всё-таки точил ваш разум. Иначе бы вы, как и мы сейчас, не задались вопросом: «Кто же такие эти самые MSAA и SSAA на самом деле?». Ну что ж, давайте разберёмся со всем этим по порядку и без заумных словечек.
Что такое сглаживание?
Минутка очевидных вещей. Изображение на вашем мониторе состоит из пикселей — очень маленьких квадратиков. По законам геометрии, из них получаются отличные вертикальные и горизонтальные линии и идеальные прямоугольники. А вот если нарисовать в Paint наклонную линию или круг, то тут же на белый свет явятся пиксельные «лесенки».
Далеко не каждую 2D фигуру можно создать только при помощи квадратов и линий под прямым углом, а о трёхмерных объектах нечего и говорить. Так что проблема сглаживания существует в играх как сейчас, так и тридцать лет назад — вам не хуже меня видно, где стоило бы сгладить Лару Крофт.
Вот эти вот неровности ещё называют «алиасингом». На скриншоте это выглядит более-менее терпимо, но в игре, помимо эстетических неудобств, они создают ещё и лишнее мельтешение на экране — ломаные линии будут всё время перестраиваться и отвлекать, а задний план и вовсе превратится в разноцветную мешанину пикселей. Решить проблему «лесенок» можно двумя способами.
Первый — это увеличить разрешение. Тогда на один экранный дюйм будет приходиться больше пикселей, и вероятность увидеть резкие переходы снизится: не зря сейчас индустрия потихоньку переходит на 4к. За ним последует 8к, потом 16к, и в конце концов вы скорее разглядите пиксели на оконном стекле, чем на экране. К сожалению, подобная роскошь кусается как в плане цены, так и в плане производства, а сорок лет назад не было даже возможности создать экран с таким разрешением. Поэтому пришлось придумать второй способ.
И это — сглаживание, которое не позволяет рваным линиям и неровностям портить вам всю малину. Технологию создали в 1972 году в Массачусетском технологическом институте, а затем эту идею подхватили и переработали все кому не лень, так что теперь мы имеем кучу разных видов смягчения границ предметов. Однако, суть у всех общая: линию на изображении сглаживают с помощью градиента на крайних пикселях.
Для сглаживания изображения к контурам предмета добавляются оттенки соседнего цвета — ближайшие к фону пиксели принимают среднее цветовое значение между моделькой и окружением, размывая границу и создавая градиент. В результате картинка выходит более плавной и приятной для глаз, хоть и становится немного мыльной.
Для некоторых графических элементов используются специальные алгоритмы сглаживания. Так, для смягчения контуров букв придумали ClearType, а для самых простых линий — Алгоритм Ву. Некоторые алгоритмы работают только с уже существующим изображением, а другие применяются прямо во время построения сцены. Одни из них жрут мощности вашей видеокарты, а другие сосредоточенно жуют ваш процессор и не влияют на FPS.
В общем, способы и принципы работы у всех разные, а значит, и фичи с багами тоже у них свои. Так что давайте разберём несколько самых популярных видов сглаживания подробнее.
Типы сглаживания и их принудительное включение в играх
Содержание
Содержание
Любой хотя бы раз видел в игре настройку «Сглаживание», оно же 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 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680×4320 от изначального 1920×1080.
Очень хорошо сглаживает лесенку пикселей, улучшает внешний вид текстур. Объекты вдали приобретают реальную четкость. Рябь в играх полностью исчезает, что делает картинку реалистичной и более приятной для глаз. В некоторых играх регулируется процентным соотношением в виде ползунка (может называться «масштабирование разрешения»).
Такое сглаживание лучше использовать в старых играх, так как в современных будут просадки частоты кадров даже на самых мощных видеокартах.
К сожалению, далеко не все игры работают с SSAA сглаживанием, даже если попытаться включить его принудительно.
Иногда в настройках попадается SSAA x 0.5. При его использовании игровое разрешение уменьшается вчетверо (до 960×540), что ухудшает качество картинки, но дает прирост производительности.
DSR (Dynamic Super Resolution)
Технология от NVIDIA, позволяющая использовать разрешения, превышающие возможности вашего монитора. Максимальное значение x 4, что соответствует формату 2160p. По качеству немного превосходит SSAA x2.
И если SSAA работает с внутренним разрешением игры, то DSR запускает игру в настоящем 4К, которое затем даунскелится до родного разрешения монитора. Это дает возможность снимать видео и делать скриншоты в 3840×2160 на мониторе с меньшим разрешением.
Из минусов интерфейс в играх может стать очень мелким и нечитаемым, если игра не оптимизирована под масштабирование игровых элементов. Второй минус это смена чувствительности мыши, курсор будет двигаться медленнее, так как ему нужно пройти больше пикселей.
В отличие от прочих типов сглаживания, DSR можно активировать в любой игре, в которой есть возможность выбора поддерживаемых разрешений.
У AMD есть свой аналог, названный VSR (Virtual Super Resolution).
Единственное полезное значение это x4, дающее реально качественное сглаживание. На других значениях картинка мало того, что не сглаживается, так еще и становится более зубчатой.
Комбинации и ответвления
Производители частенько любят хитрить со сглаживанием, комбинируя методы. В качестве примера TXAA: на самом деле это всего лишь одновременная работа MSAA и FXAA низкого качества. Адаптивным сглаживанием называют SSAA + MSAA. Многокадровое сглаживание MFAA это просто надстройка для MSAA, призванная улучшить качество (через панель управление не заработала ни в одной игре).
Еще один известный тип сглаживания это CSAA, по сути тот же MSAA, но потребляющий чуть меньше ресурсов. Считается устаревшим и из новых видеокарт удален. Попытка принудительной активации приводит к вылету драйвера.
Грубо говоря, практически все сторонние типы сглаживания являются либо модификацией MSAA, либо комбинацией с использованием различных пост-эффектов.
Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360×8640), при 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 также не доставит никаких проблем. Переходим во вкладку «Игры» и изменяем несколько настроек.
Избыточная выборка — это SSAA, а множественная выборка — это MSAA.
MSAA \ SSAA \ DSR (GeForce)
Для включения DSR необходимо перейти в раздел «Управление параметрами 3D» и выбрать строчку «DSR-Степень».
Появится небольшое окно, в котором вы сможете выбрать, во сколько раз большие от оригинального разрешения вам нужны. К примеру, x1.78 соответствует разрешению 2560×1440, а x4 соответствует 3840×2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.
Также необходимо выставить параметр «DSR-плавность» на значение 0 %. В противном случае изображение будет слегка размыто.
Для включения MSAA, в этом же разделе (Управление параметрами 3D) нужно изменить два параметра.
Затем нажимаем кнопку «Применить».
Для настроек 3D имеется две вкладки: глобальные параметры и программные настройки. Если вы меняет параметры в первой вкладке, то они применяются ко всем приложениям, а если вы меняете значения во второй вкладке, то настройки применяются только к выбранной вами игре.
Для SSAA сглаживания настройки в панели управления не предусмотрено (исключение — старые видеокарты).
Включить его получиться только с помощью сторонней утилиты NVIDIA Profile Inspector.
Для сброса настроек вы можете нажать на значок NVIDIA.
Сравнение
Для сравнения качества было решено выделить фрагмент картинки, затрагивающие провода, текстовую надпись Track Mania и дорожные перила.
Вторым фрагментом выступит автомобиль, для оценки сглаживания изгибов и текстур.
А теперь сравним влияние сглаживания на FPS в игре.
Исходные материалы
Все использованные в статье игровые скриншоты, а также несколько дополнительных вы можете скачать в архиве по ссылке.
Track Mania Nations — игра, использованная для демонстрации типов сглаживания доступна для бесплатного скачивания на странице в Steam.
Вывод
Мы изучили эффективность сглаживания на примерах, а также научились принудительно его использовать c помощью различных программ и панели управления видеокартой.
Теперь вы в любой момент сможете улучшить качество изображения, даже если в самой игре настройки сглаживания не предусмотрено.
Что такое антиалиасинг: Digital Foundry о технологиях «сглаживания»
«Лесенка» и другие проблемы.
Digital Foundry, техническое подразделение Eurogamer, выпустило видео о технологиях «сглаживания» (anti-aliasing). Эксперты рассказали о преимуществах и недостатках различных видов антиалиасинга, а мы выбрали из видео главное.
Большинство игроков имеет представление о том, что такое «сглаживание» (anti-aliasing) — это технология, устраняющая «зазубрины». Однако сейчас этим словом обозначают сразу несколько совершенно разных технологий — графические движки становятся всё более сложными, а вслед за ними становятся более сложными и разнообразными методы борьбы с «зазубринами».
Чтобы понять, что такое «антиалиасинг», сначала нужно разобраться, что такое «алиасинг» — именно типами «алиасинга» определяются методы борьбы с ним. Алиасинг — это резкое изменение в визуальной информации, мешающее игроку воспринимать её как нечто непрерывное. Это может быть резкий переход между пикселями, между группами пикселей или между кадрами.
Самый распространённый тип алиасинга — знакомая всем «лесенка», встречающаяся при работе с полигональной геометрией или с растровой графикой. Она возникает при резком переходе между пикселями.
C этой проблемой призван бороться метод «сглаживания» под названием Ordered Grid Super Sampling — это увеличение плотности пикселей. Теперь мы имеем четыре пикселя вместо одного и плавное перетекание вместо резкого перехода. Главная проблема этого метода очевидна: если заменить каждый пиксель на набор из четырёх, это не может не сказаться на производительности.
Менее требователен к системе метод под названием MSAA (Multisample Anti-aliasing), увеличивающий плотность пикселей выборочно, на границах определённых полигональных объектов. Конечно же, такой метод гораздо менее требователен к производительности, чем SSAA, увеличивающий количество всех пикселей в четыре раза.
Эти методы позволяют решить проблемы со статичным изображением, но к ситуациям, в которых алиасинг возникает в результате движения, нужен другой подход. В качестве примера эксперт Digital Foundry использует соломенную крышу из третьего «Ведьмака» — на статичных скриншотах она выглядит потрясающе, но на видео начинает «рябить». В этом случае проблема возникает внутри текстуры, а не по её краям. MSAA тут делу не поможет, а SSAA будет слишком сильно нагружать систему.
От ряби можно избавиться, просто снизив уровень детализации конкретного объекта — этот метод носит название Mip Map. Снижение количества пикселей в текстуре, находящейся на расстоянии, может не только повысить производительность, но и избавить её от ряби и прочих неприятных визуальных эффектов.
Ещё один вид алиасинга связан с переходом между кадрами. Предыдущий кадр может оставлять визуальный след в текущем — объекты будто бы оказываются в двух местах одновременно. Эта проблема не исчезает полностью ни при тридцати, ни при шестидесяти кадрах в секунду — чтобы избавиться от неё, необходима частота в несколько тысяч кадров в секунду и дисплей, способный работать на такой частоте.
На всё многообразие проявлений алиасинга у разработчиков неизменно находятся эффективные ответы — методы борьбы постоянно совершенствуются. Например, в последнее время MSAA встречается в играх всё реже, а популярность приобретает метод PPAA (Post Process Anti-Aliasing), в частности FXAA и SMAA. Его суть заключается в том, что «сглаживание» производится постфактум — уже после того, как изображение было создано. У этого метода есть и недостатки — например, нестабильность изображения, вызванная разницей между двумя следующими друг за другом кадрами после обработки. К тому же при использовании PPAA часть изображения может стать чересчур «сглаженной», или, наоборот, остаться «острой».
Эти проблемы можно решить, если предоставить алгоритму постобработки больше информации. Существуют методы «сглаживания», способные обрабатывать каждый новый кадр на основе предыдущего. Это позволяет добиться эффекта, не уступающего в «гладкости» требовательному SSAA, задействовав гораздо меньше ресурсов.
Здесь тоже есть свои проблемы — изображение, созданное на основе предыдущих кадров, может «сгладиться» слишком сильно. Сейчас с этим тоже научились бороться: теперь один алгоритм занимается сглаживанием, а другой, сразу же вслед за ним, «заострением».
Однако технология TAA (Temporal Anti-aliasing) обостряет проблему перехода между кадрами, о которой было сказано ранее. С ней разработчики борются при помощи старого доброго «размытия» (blur), столь нелюбимого многими игроками. По мнению эксперта Digital Foundry, от «блюра» нам никуда не деться — по крайней мере, пока мы не сможем позволить себе несколько тысяч кадров в секунду.
В финале видео эксперт составляет краткую памятку для тех, у кого возникают проблемы с выбором метода «сглаживания».
SSAA — отличное качество, но очень требователен.
MSAA — полезен лишь в отдельных случаях, сейчас встречается редко.
TAA — отличное качество, не так требователен, как SSAA, но знаменит «блюром» и проблемами при переходе между кадрами.
PPAA — нормальное качество, не требователен, рекомендуется использовать в сочетании с каким-либо другим методом.
интересная статья, но очень поверхностная.
хотелось бы увидеть далее более развернутый и технически углубленный материал 🙂
Не, это все можно и на вике почитать. Я бы лично предпочел статью с графиками и таблицами, на которых четко можно понять и увидеть, в каких условиях какие варианты сглаживания рулят (очень их много развелось уже), а когда их лучше отрубать или менять на другие. Но это дофига затратнее.
Вот весьма неплохой обзор. Пусть название не обманывает, там разбираются и пост-процессинговые. Хватило, чтобы восполнить знания при подготовке к собеседованию 🙂
https://mynameismjp.wordpress.com/2012/10/24/msaa-overview/
Годно, спасибо. 🙂 2012 канеш, но все равно норм.
Большое спасибо. К собеседованию, увы, не готовлюсь, но для самообразования подойдёт.
https://stopgame.ru/blogs/topic/55929
У этого же автора есть еще несколько интересных статей про графику в играх
Два года обновлял периодически его блоги, что бы дождаться новых статей про графон, но чёт тишина.
Наиболее подробное изложение из тех, что я видел:
https://habr.com/post/343876/
Вот только эта статья устаревшая, алгоритмы которые сейчас рулят там только упомянуты в разделе про будущее.
Это не поможет. Потомучто когда у тебя на экране тонны разной геометрии вдали и невдали, тонкие линии на одежде, а художники скулят, что их работа портится этими вашими АА, то тут уже интернеты не помогут.
В случае deferred рендеринга шейдерить придётся, читая информацию каждого СЭМПЛА геометрии, каждый раз для КАЖДОГО источника света, что выльется в огромные потери производительности (привет mankind divided)
АА вообще не отомрет с развитием разрешения дисплеев? Когда пиксели не различимы, в 4К и выше. Подключал игровой ноут к 4К ТВ, в нативном разрешении лесенок не видно, с включением АА наоборот чуть менее приятной мыльной картинка становится. А вот в меньших разрешениях разница конечно разительная
По логике — как раз должно. На мобилах в первую очередь, потому что там разрешение (дпи) еще круче. Но в железо уже вложились, так что какое-то время будет и то и другое. 🙂
Думаю, что нет, не отомрет, как минимум по той причине, что алиасинг возникает не только из-за низкого разрешения. Временное сглаживание, mip-уровни, вот это все не просто так изобреталось.
Ещё здорово бы помог переход с прямоугольной растровой сетки дисплеев на гексагональную. Автоматическое уменьшение алиасинга и увеличение ДПИ. Но это слишком радикальное технологическое и производственное решение.
Если железо будет не напрягаясь тянуть 4K, она и FullHD с честным SSAA потянет. Так что будущее главным образом за производительностью.
Всегда всё упирается в подход самих разработчиков. Где-то в 1080 без сглаживания картинка смотрится чистой и без лесенок, а где-то ей можно пилить моих бывших. За последние лет 5, убедился что лучше Даунсемплинга нет ничего, на резкость не влияет и картинка становится гладкой как попка младенца.
SSAA, увеличивающий количество всех пикселей в четыре раза.
Суперсемплинг не обязательно четырехкратный, зависит от предусмотрительности разработчика и возможностей железа у игроков.
Если бы. Для некоторых (в особенности приходящих с консолей, где таких широких возможностей нет вообще) это до сих пор загадка, даже про vsync далеко не все знают. А про различные технология затенения вроде HBAO+ и речи не идет. Поэтому подобные ликбезы это даже хорошо, если конечно не вводят пользователей в заблуждение (а так может быть, когда пытаешься упростить сложные вещи для обычного юзера).
Встречал статьи в относительно авторитетных источниках, в которых писалось, что vsync нужен только если частота кадров ниже, чем частота развертки, например. Что вообще не соответствует действительности.
До сих пор не понимаю разницы между разными вариантами затенения. Где-то тени потемнее, где-то поярче. Вычитал что HBAO это для нвидии, ставлю это.
Олсо, для более наглядного представления о видах сглаживания можно скачать и потыкать вот эту демку http://blog.metaclassofnil.com/?p=851
Комментарий удален по просьбе пользователя
Кому как, я правильное taa с небольшим мылом больше предпочитаю, чем отвратительную рябь тебе текстур без него. Впрочем в ряби виноваты опять те же разрабы, что которые делают запредельную texel density, но, думаю, на это есть причины.
Рябь текстур? Вы в каком разрешении и с каким скейлом играете? Я часто 2,5К выкручиваю до 5к через NVidia DSR 4х и всё равно не вижу никакой ряби.
у меня gtx1060, какие там 2.5к =/ на 1080p дай бог поиграть. А рябь/муар как раз появляется когда разрешение текстуры больше, чем разрешение выводимое на монитор. Как раз таки в вашем случае, а так же в случае суперсемплинга это и не должно быть/проявляется минимально. Ну и mip уровни текстур тоже немного спасают.
Так зачем тогда выкручиваете детализацию текстур более нужного? Ваша проблема только в этом. 😉
Потому что могу ¯\_(ツ)_/¯ Да и совсем вблизи не так мыльно. От игры зависит на самом деле, я люблю потратить часик на перебор разных комбинаций, посмотреть что делает та или друга настройка. Как правило taa+высокие текстуры всё равно выигрывают у других вариантов по отношению качество/производительность.
MSAA — полезен лишь в отдельных случаях, сейчас встречается редко
Разве на мобилках не его используют?
Большинство мобильных девайсов не поддерживают новомодный deferred рендеринг, и до сих пор остаются на forward рендеринге, и потому ничего не мешает продолжать использовать такой удобный и относительно дешёвый msaa
сраливкулак в другой стороне
Сейчас бы об антиалиасинге рассказывать в 2к18.
Как будто что-то изменилось с 2к11 года или статьи тех времен устарели(нет).
Лично мне для игры SMAA хватает. В отличии от FXAA, MLAA и TXAA, он не мылит картинку (хотя конечно зависит от рук разработчика).
Проблемы возникают, когда нужно сделать скриншот. Исходя из своего опыта, я для себя решил, что никакое сглаживание не сравнится с даунсэмплингом. Только вот включить его удается далеко не всегда. Nvidia Ansel, к примеру, работает только в избранных играх.
Усугубляет положение вещей еще и мода на «закрытие» игровых движков, где даже тупо консоль вызвать нельзя.
Всю жизнь MSAAx4 было прекрасным выбором, зачем понапридумывали этой фигни, которую хрен запомнишь и хрен отличишь(