Найти в Дзене
Smart electronics

Что такое Anti-aliasing (сглаживание)

Оглавление

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

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

-2

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

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

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

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

-4

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

-5

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

-6

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

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

-7

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

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

-8

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

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

-9

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

-10
-11

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

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

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

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

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