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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

144144
45 комментариев

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

23
Ответить

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

21
Ответить

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

6
Ответить

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

3
Ответить

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

1
Ответить

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

Ответить

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

5
Ответить