Gamedev Артемий Леонов
7 011

Что такое антиалиасинг: Digital Foundry о технологиях «сглаживания»

«Лесенка» и другие проблемы.

В закладки

Digital Foundry, техническое подразделение Eurogamer, выпустило видео о технологиях «сглаживания» (anti-aliasing). Эксперты рассказали о преимуществах и недостатках различных видов антиалиасинга, а мы выбрали из видео главное.

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

Большинство игроков имеет представление о том, что такое «сглаживание» (anti-aliasing) — это технология, устраняющая «зазубрины». Однако сейчас этим словом обозначают сразу несколько совершенно разных технологий — графические движки становятся всё более сложными, а вслед за ними становятся более сложными и разнообразными методы борьбы с «зазубринами».

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

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

{ "items": [{"title":"\u0422\u0430\u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 \u0442\u0435\u043e\u0440\u0438\u0438","image":{"type":"image","data":{"uuid":"e5d4c2c9-2b01-cf62-66b4-d480207b5a81","width":1920,"height":1080,"size":354718,"type":"png","color":"","external_service":[]}}},{"title":"\u0410 \u0442\u0430\u043a \u0435\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430\u0448 \u043c\u043e\u0437\u0433","image":{"type":"image","data":{"uuid":"8fd7271c-8bd4-f28f-84eb-fb604f4ae891","width":1920,"height":1080,"size":218121,"type":"png","color":"","external_service":[]}}}] }

Как борются с графическими несовершенствами

C этой проблемой призван бороться метод «сглаживания» под названием Ordered Grid Super Sampling — это увеличение плотности пикселей. Теперь мы имеем четыре пикселя вместо одного и плавное перетекание вместо резкого перехода. Главная проблема этого метода очевидна: если заменить каждый пиксель на набор из четырёх, это не может не сказаться на производительности.

{ "items": [{"title":"\u0414\u043e OGSS","image":{"type":"image","data":{"uuid":"5c221ef8-9eda-23c3-f5f6-bea688fa5a08","width":1920,"height":1080,"size":823014,"type":"png","color":"","external_service":[]}}},{"title":"\u041f\u043e\u0441\u043b\u0435 OGSS","image":{"type":"image","data":{"uuid":"8fb46062-b7f1-5322-288f-7fb689928381","width":1920,"height":1080,"size":771307,"type":"png","color":"","external_service":[]}}}] }

Менее требователен к системе метод под названием MSAA (Multisample Anti-aliasing), увеличивающий плотность пикселей выборочно, на границах определённых полигональных объектов. Конечно же, такой метод гораздо менее требователен к производительности, чем SSAA, увеличивающий количество всех пикселей в четыре раза.

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

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

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

Что популярно сейчас

На всё многообразие проявлений алиасинга у разработчиков неизменно находятся эффективные ответы — методы борьбы постоянно совершенствуются. Например, в последнее время MSAA встречается в играх всё реже, а популярность приобретает метод PPAA (Post Process Anti-Aliasing), в частности FXAA и SMAA. Его суть заключается в том, что «сглаживание» производится постфактум — уже после того, как изображение было создано. У этого метода есть и недостатки — например, нестабильность изображения, вызванная разницей между двумя следующими друг за другом кадрами после обработки. К тому же при использовании PPAA часть изображения может стать чересчур «сглаженной», или, наоборот, остаться «острой».

{ "items": [{"title":"","image":{"type":"image","data":{"uuid":"16a2d49b-a395-8c6a-381e-e4f46db6383a","width":1920,"height":1080,"size":1820790,"type":"png","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"de214306-4b7a-6cf2-17b9-c5d1febfa605","width":1920,"height":1080,"size":1915904,"type":"png","color":"","external_service":[]}}}] }

Эти проблемы можно решить, если предоставить алгоритму постобработки больше информации. Существуют методы «сглаживания», способные обрабатывать каждый новый кадр на основе предыдущего. Это позволяет добиться эффекта, не уступающего в «гладкости» требовательному SSAA, задействовав гораздо меньше ресурсов.

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

Однако технология TAA (Temporal Anti-aliasing) обостряет проблему перехода между кадрами, о которой было сказано ранее. С ней разработчики борются при помощи старого доброго «размытия» (blur), столь нелюбимого многими игроками. По мнению эксперта Digital Foundry, от «блюра» нам никуда не деться — по крайней мере, пока мы не сможем позволить себе несколько тысяч кадров в секунду.

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

SSAA — отличное качество, но очень требователен.

MSAA — полезен лишь в отдельных случаях, сейчас встречается редко.

TAA — отличное качество, не так требователен, как SSAA, но знаменит «блюром» и проблемами при переходе между кадрами.

PPAA — нормальное качество, не требователен, рекомендуется использовать в сочетании с каким-либо другим методом.

#графика #игры #арт

Статьи по теме
Лабиринт отражений: история трассировки лучей в играх
Трассировка лучей на примере штурмовиков из «Звёздных войн» и цифровой Энди Сёркис: технодемо Epic Games с GDС 2018
Графика сегодняшнего дня: руководство ПК-геймера
{ "author_name": "Артемий Леонов", "author_type": "editor", "tags": ["\u0430\u0440\u0442","\u0433\u0440\u0430\u0444\u0438\u043a\u0430","\u0438\u0433\u0440\u044b"], "comments": 48, "likes": 150, "favorites": 90, "is_advertisement": false, "subsite_label": "gamedev", "id": 19473, "is_wide": true }
{ "id": 19473, "author_id": 3792, "diff_limit": 1000, "urls": {"diff":"\/comments\/19473\/get","add":"\/comments\/19473\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/19473"}, "attach_limit": 2, "max_comment_text_length": 5000 }

48 комментариев 48 комм.

Популярные

По порядку

Написать комментарий...
22

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

Ответить
20

Согласен, статья хреновенькая, все настолько вкратце, что вообще ни о чем... Все просто намешано в кучу. Текста с гулькин нос, да еще и вперемешку со скринами с пережатого видео или вообще растянутых с не-пойми-какого исходного разрешения. PPAA - это что? Понятно что пост-процессинг, но этих алгоритмов минимум штуки четыре можно насчитать. Чем FXAA отличается от SMAA? Что такое MLAA? Что такое *aa_type_here*? Ни слова про АА для альфа/масок. Блин, это даже в "блогах". Это не уровень DTF! АЛЯРМ!

Ответить
6

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

Ответить
2

Вот весьма неплохой обзор. Пусть название не обманывает, там разбираются и пост-процессинговые. Хватило, чтобы восполнить знания при подготовке к собеседованию :-)
https://mynameismjp.wordpress.com/2012/10/24/msaa-overview/

Ответить
0

Годно, спасибо. :) 2012 канеш, но все равно норм.

Ответить
0

Большое спасибо. К собеседованию, увы, не готовлюсь, но для самообразования подойдёт.

Ответить
3

https://stopgame.ru/blogs/topic/55929
У этого же автора есть еще несколько интересных статей про графику в играх

Ответить
1

Два года обновлял периодически его блоги, что бы дождаться новых статей про графон, но чёт тишина.

Ответить
1

Наиболее подробное изложение из тех, что я видел:
https://habr.com/post/343876/

Ответить
0

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

Ответить
0

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

Ответить
5

Про MSAA допущена некоторая неточность, а вернее какая-то каша из morphological anti-aliasing и SSAA.
Multisample anti-aliasing не совсем про выборочное увеличение точек на границах. Увеличение выборки происходит в любом случае, но вот затенение(shading) происходит для ОДНОЙ точки в центре фрагмента, а конечное значение получается в зависимости от количества точек прошедших растеризацию, однако тест глубины и прочие выполнять приходится все равно. Отсюда и выигрыш, поскольку самую затратную часть - фрагментный шейдер - выполняем один раз на точку, как и без AA.

Ответить
1

В случае deferred рендеринга шейдерить придётся, читая информацию каждого СЭМПЛА геометрии, каждый раз для КАЖДОГО источника света, что выльется в огромные потери производительности (привет mankind divided)

Ответить
0

Проблемы deferred shading-а и "классических" методов сглаживания - тема отдельного обсуждения, но за дополнение спасибо.

Ответить
5

АА вообще не отомрет с развитием разрешения дисплеев? Когда пиксели не различимы, в 4К и выше. Подключал игровой ноут к 4К ТВ, в нативном разрешении лесенок не видно, с включением АА наоборот чуть менее приятной мыльной картинка становится. А вот в меньших разрешениях разница конечно разительная

Ответить
0

По логике — как раз должно. На мобилах в первую очередь, потому что там разрешение (дпи) еще круче. Но в железо уже вложились, так что какое-то время будет и то и другое. :)

Ответить
0

Думаю, что нет, не отомрет, как минимум по той причине, что алиасинг возникает не только из-за низкого разрешения. Временное сглаживание, mip-уровни, вот это все не просто так изобреталось.

Ответить
0

Ещё здорово бы помог переход с прямоугольной растровой сетки дисплеев на гексагональную. Автоматическое уменьшение алиасинга и увеличение ДПИ. Но это слишком радикальное технологическое и производственное решение.

Ответить
0

Если железо будет не напрягаясь тянуть 4K, она и FullHD с честным SSAA потянет. Так что будущее главным образом за производительностью.

Ответить
5

Всегда всё упирается в подход самих разработчиков. Где-то в 1080 без сглаживания картинка смотрится чистой и без лесенок, а где-то ей можно пилить моих бывших. За последние лет 5, убедился что лучше Даунсемплинга нет ничего, на резкость не влияет и картинка становится гладкой как попка младенца.

Ответить
3

SSAA, увеличивающий количество всех пикселей в четыре раза.

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

Ответить

Комментарий удален

10

Если бы. Для некоторых (в особенности приходящих с консолей, где таких широких возможностей нет вообще) это до сих пор загадка, даже про vsync далеко не все знают. А про различные технология затенения вроде HBAO+ и речи не идет. Поэтому подобные ликбезы это даже хорошо, если конечно не вводят пользователей в заблуждение (а так может быть, когда пытаешься упростить сложные вещи для обычного юзера).

Ответить

Комментарий удален

4

Vsync - далеко не такая простая тема, как кажется с первого взгляда, поэтому не увидительно, что не знают. Даже якобы продвинутые пользователи в 9 из 10 случаев до конца не понимают специфику работы вертикальной синхронизации: как конкретно она работает; чем отличается от обычного лимитирования кадров; в каких случаях увеличивает задержку ввода, а в каких - нет; в каких случаях вызывает "неровную" частоту кадров... А уж если копнуть тройную буферизацию, то там вообще темный лес.

Встречал статьи в относительно авторитетных источниках, в которых писалось, что vsync нужен только если частота кадров ниже, чем частота развертки, например. Что вообще не соответствует действительности.

Ответить
3

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

Ответить
2

Посмотрел на скрины и снова убедился, что при высоком разрешении в сглаживании нет нужды в принципе. А на низком - SweetFx Lumasharpen + Nvidia Fxaa в помощь.

Ответить
2

Олсо, для более наглядного представления о видах сглаживания можно скачать и потыкать вот эту демку http://blog.metaclassofnil.com/?p=851

Ответить
1

Я вижу только больше мыла, когда оно включено.

Ответить
1

Есть блюр, а есть мыло - небо и земля.

Ответить
0

Так а блюр это не мыло что ле?

Ответить
7

Мыло - низкое разрешение. Блюр - размытие изображения.

Ответить
0

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

Ответить
1

Кому как, я правильное taa с небольшим мылом больше предпочитаю, чем отвратительную рябь тебе текстур без него. Впрочем в ряби виноваты опять те же разрабы, что которые делают запредельную texel density, но, думаю, на это есть причины.

Ответить
0

Рябь текстур? Вы в каком разрешении и с каким скейлом играете? Я часто 2,5К выкручиваю до 5к через NVidia DSR 4х и всё равно не вижу никакой ряби.

Ответить
0

у меня gtx1060, какие там 2.5к =/ на 1080p дай бог поиграть. А рябь/муар как раз появляется когда разрешение текстуры больше, чем разрешение выводимое на монитор. Как раз таки в вашем случае, а так же в случае суперсемплинга это и не должно быть/проявляется минимально. Ну и mip уровни текстур тоже немного спасают.

Ответить
0

Так зачем тогда выкручиваете детализацию текстур более нужного? Ваша проблема только в этом. ;)

Ответить
0

Потому что могу ¯\_(ツ)_/¯ Да и совсем вблизи не так мыльно. От игры зависит на самом деле, я люблю потратить часик на перебор разных комбинаций, посмотреть что делает та или друга настройка. Как правило taa+высокие текстуры всё равно выигрывают у других вариантов по отношению качество/производительность.

Ответить
0

Нет.

Ответить
1

В 1080p включать taa вообще не вариант. Возврат в эру пс3. А вот в 4к уже можно выбирать - крайне четкая картинка без сглажки или cgiная картинка с taa, но с худшей детализацией. Причем не обязательно 4к честные, вполне сойдёт и 1080п + резолюшен скейлинг.

Ответить
0

MSAA — полезен лишь в отдельных случаях, сейчас встречается редко

Разве на мобилках не его используют?

Ответить
1

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

Ответить
–17

tl;dr: алиаляйзинг - это когда тебя в жопу ебут.

Ответить
0

сраливкулак в другой стороне

Ответить
0

Для себя проблему сглаживания решил просто -- 4k телек и FXAA принудительно. В итоге всё, что идет в 1080p выглядит лучше, чем в нативном разрешении, а для 4k в абсолютном большинстве случаев картинка более чем приятная и без сглаживания по дефолту.

Ответить
0

Сейчас бы об антиалиасинге рассказывать в 2к18.
Как будто что-то изменилось с 2к11 года или статьи тех времен устарели(нет).

Ответить
0

Алиасинг с переходом между кадрами описан автором неверно. Описанное двоение изображения в соседних кадрах, во-первых, не является резким и соответственно алиасингом. А во-вторых, у этого эффекта уже давно есть другой правильный официальный термин: ghosting. И бывает он из-за двух вещей. 1. инерционности зрения (а она у всех разная). 2. типа и качества матрицы монитора/ТВ. Например, все типы, кроме TN, в 95+% реализаций начинают рисовать новый кадр не дожидаясь, пока полностью нарисуется предыдущий. Т.е., пока не зажгутся абсолютно все пиксели. В смысле, что самых медленных - не ждут. Поэтому, смотрите в обзорах на разлёт показателей измеренной скорости зажигания и тушения пикселей от минимальных до максимальных и это (чем больше - тем хуже) вам подскажет, какие примерно двоения и шлейфы вам ждать от такого монитора.

Ответить
0

Лично мне для игры SMAA хватает. В отличии от FXAA, MLAA и TXAA, он не мылит картинку (хотя конечно зависит от рук разработчика).

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

Усугубляет положение вещей еще и мода на "закрытие" игровых движков, где даже тупо консоль вызвать нельзя.

Ответить
–1

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

Ответить

Комментарий удален

0

MSAAx4 никогда не был "прекрасным выбором". Он был приемлемым выбором. Лесенки полностью не убирает, а по производительности бьет ощутимо. Не даром при низкой производительности всегда первейшая рекомендация была "выключить АА".

Ответить

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Новая игра Ubisoft на релизе выглядит
точно так же, как и на E3
Подписаться на push-уведомления