In real-time rendering, there exists a major problem: when rendering an image, sharp transitions—«jaggies» or aliasing—appear at object boundaries, which significantly impairs the comfortable perception of the final image. Anti-aliasing methods are designed to reduce this effect. The aim of this article is to conduct a comparative analysis of common anti-aliasing techniques—such as SSAA, MSAA, FXAA, TAA, SMAA, etc.—from the standpoint of their operating principles, efficiency, and areas of application. As part of the study, a review of literature and smoothing technologies was carried out, examining the specifics of each method, their advantages, disadvantages, and situations where the use of a particular approach is most justified. As a result, the main strengths and limitations of key anti-aliasing algorithms are identified. It is demonstrated that no single method is universal: the optimal choice depends on image quality requirements and the available computational resources of the system. At the same time, TAA (Temporal Anti-aliasing) has now become the de facto standard solution to the aliasing problem.
Keywords: antialiasing, rendering, sample, pixel, shader, scene.
Сглаживание (anti-aliasing) — это процесс, призванный сделать границы объектов на изображении более плавными, уменьшая эффект «зубчатых» краёв (aliasing) [2]. Aliasing возникает из-за того, что непрерывные геометрические линии ограничены дискретной сеткой пикселей. Все геометрические формы, по сути, состоят из бесконечного количества точек между двумя точками пространства, и их отображение при помощи фиксированного количества пикселей всегда приводит к аппроксимации этой линии вне зависимости от количества используемых пикселей [4]. В результате, как представлено на рисунке 1, появляются «лесенки» в изображении [1, с. 130, 3].
Рис. 1. Иллюстрация aliasing. Плотности пикселей не хватает, чтобы очертания геометрии были плавными
Есть множество методов сглаживания, различающихся особенностью работы и требовательностью к ресурсам. Ниже рассмотрены основные из них.
SSAA (Super-Sampling Anti-Aliasing)
SSAA является одним из самых ранних и простых по концепции методов сглаживания. Его суть заключается в том, что сцена рендерится в разрешении выше исходного, после чего полученное изображение уменьшается до исходного разрешения [1, с. 138]. Есть несколько вариантов сэмплирования (выборки) пикселей, рассмотрим далее обычно использующийся box filter. Цвет каждого пикселя вычисляется как усреднённое значение нескольких соседних пикселей более высокого разрешения. Такой подход эффективно сглаживает края объектов: резкие переходы цвета на границах размягчаются за счёт усреднения, и эффект «лесенки» практически исчезает. Также есть улучшенный вариант box filter сэмплирования под названием RGSS (Rotate Grid Super Sampling) [4, 5]. В целом, SSAA обеспечивает наилучшее качество сглаживания среди всех методов, поскольку фактически повышает разрешение изображения.
Однако плата за качество SSAA — высокая вычислительная стоимость. Рендеринг кадра в 4 раза большем разрешении (например, 4K для получения Full HD изображения) увеличивает нагрузку на графический процессор кратно и резко снижает частоту кадров. Поэтому классический SSAA практически не применяется в real-time рендеринге. Он встречался в ранние годы 3D-графики и до сих пор используется главным образом в оффлайн-визуализации (при покадровом рендеринге изображений или видео) либо в качестве опциональной настройки для мощных систем. В современных играх аналогичный эффект иногда достигается через увеличение масштаба рендеринга выше 100 % (рендеринг с избыточным разрешением и последующим даунсемплингом). В целом SSAA практически не используется в реальном времени и заменяется более оптимизированными методами.
FXAA (Fast Approximate Anti-Aliasing)
FXAA — это постобработочный алгоритм сглаживания, то есть применяется уже после того, как сцена полностью отрисована в целевом разрешении. FXAA анализирует готовое изображение, пытаясь обнаружить пиксельные «ступеньки». Обнаружив их, алгоритм сглаживает его, размешивая цвета соседних пикселей вдоль проблемной границы. Проще говоря, FXAA размывает участки изображения, где заметны зубчатые линии, создавая иллюзию более гладких краёв [6, 7]. Этот метод стал популярен благодаря чрезвычайно высокой скорости работы: он реализован в виде простого пиксельного шейдера и его “цена” даже на слабом оборудовании составляет всего до нескольких миллисекунды [8, с. 29]. Многие игры первой половины 2010-х годов внедрили FXAA как лёгкую опцию сглаживания, позволяющую улучшить картинку без серьёзного влияния на производительность.
Главный недостаток FXAA — точность сглаживания. Этот метод не передает субпиксельные детали, поэтому он хуже работает чем MSSA или SMAA. Еще одна проблема возникает при сглаживании контрастных текстур (как например яркие пиксели на темном фоне) — алгоритм смешивает пиксели в любых случаях, когда это даже не требуется [4]. Несмотря на побочные эффекты, FXAA остаётся очень востребованным в случаях, когда необходим быстрый и дешёвый способ сгладить изображение — например, на слабых видеокартах, мобильных устройствах или в проектах, требующих максимальной производительности. Также для повышения качества, можно использовать FXAA в связке с TAA [8, с. 32]. Более подробное описание и применение FXAA описаны в [3, с. 6] и [6].
MSAA (Multi-Sampling Anti-Aliasing)
MSAA создает несколько выборок внутри каждого пикселя (2x, 4x, 8x) (рисунок 2). Вместо определения цвета каждого субпикселя, т. е. запуска fragment shader для каждого сэмпла, MSAA использует больший depth/stencil buffer для определения покрытия выборок. Количество охваченных сэмплов определяет, насколько цвет пикселя влияет на framebuffer. Таким образов цвета выборок и framebuffer смешиваются и получается более плавное изображение [9, 10, 11]. MSAA обходится значительно меньшими затратами, чем SSAA, сглаживая контуры при умеренном падении производительности.
Рис. 2. 4 выборки на один пиксель, цвет пикселя становится более мягким
Однако у MSAA есть и ограничения. Прежде всего, он воздействует только на границы полигонов — aliasing внутри текстур (например, на мелких узорах или деталях поверхностей) остаётся, поскольку там нет границ, которые MSAA мог бы обработать. Также полупрозрачные объекты и текстуры с альфа-тестом (листва, трава, решётки) сглаживаются ограниченно, если не применять дополнительные приёмы вроде “alpha-to-coverage”. Из-за особенностей метода, повышаются требования к видеопамяти графического процессора, а работа с отложенным (referred) рендерингом усложняется [4]. По этим причинам многие современные игры отказываются от MSAA в пользу постобработки или темпоральных методов. Тем не менее, MSAA всё ещё применяется в ряде сценариев как компромисс между качеством и производительностью: он устраняет большинство заметных «лесенок» на моделях при существенно меньших затратах, чем SSAA.
SMAA (Subpixel Morphological Anti-Aliasing)
SMAA — продвинутый постобработочный метод сглаживания, построенный на основе MLAA и являющийся его улучшенной версией (Morphological Anti-aliasing. Он анализирует уже отрендеренное изображение, распознавая характерные шаблоны зубчатых краёв (линии, углы) по контрасту и сглаживает их, смешивая цвета пикселей вдоль границ. В отличие от простого размытия FXAA, алгоритм SMAA работает более избирательно и учитывает субпиксельные детали, поэтому сглаживает «лесенки» с меньшим побочным размытием [3, с. 10, 12].
Благодаря хорошему соотношению качества и скорости SMAA получил широкое распространение. Существуют также усовершенствованные версии SMAA — SMAA 1x, SMAA S2x, SMAA T2x, SMAA 4x. SMAA1x включает включает точный поиск расстояний, локальную адаптацию контраста, резкие геометрические особенности и диагональное обнаружение узоров. SMAA S2x включает все функции SMAA 1x плюс пространственный мультисэмплинг. SMAA T2x включает все функции SMAA 1x плюс временный суперсэмплинг. SMAA4x включает все функции SMAA 1x плюс пространственный и временный мульти/суперсэмплинг.
TAA (Temporal Anti-Aliasing)
Temporal Anti-Aliasing (темпоральное сглаживание) — подход, учитывающий информацию не только из текущего кадра, но и из нескольких предыдущих [14, 17]. Идея состоит в том, чтобы собрать за несколько последовательных кадров больше данных о сцене, чем содержится в одном статическом изображении. Для этого каждый новый кадр рендерится с небольшим случайным сдвигом («джиттером») координат выборки, а затем полученное изображение комбинируется с предыдущим (рисунок 3) — для этого используется буфер истории (history buffer), который хранит информацию о прошлых кадрах [15, с. 17]. Постепенное накопление информации даёт эффект, схожий с суперсэмплингом, но распределённый по времени, а не по пространству. TAA эффективно устраняет как пространственные «лесенки», так и мерцание мелких деталей при движении, сглаживая картинку при относительно низких издержках. На данный момент является стандартом в индустрии компьютерных игр, и рендеринга в реальном времени в целом [14].
Рис. 3. Общий принцип работы TAA
Метод TAA получил широкое распространение в современных игровых движках (например, используется по умолчанию в Unreal Engine 4/5) благодаря балансу между качеством и производительностью. Однако и у него есть недостатки. Поскольку TAA усредняет несколько кадров, быстро движущиеся объекты могут страдать от размытости или появления шлейфов (ghosting) — для их устранения используется буфер смещения (velocity buffer) [16]. Кроме того, при резких изменениях сцены темпоральное сглаживание способно размывать изображение, пока накопленная история не обновится под новые условия. Несмотря на это, TAA остаётся крайне популярным: для большинства сценариев его побочные эффекты малозаметны, а выигрыш в качестве по сравнению с простыми методами (такими как FXAA) — значительный. Нередко TAA комбинируют с дополнительными фильтрами резкости или даже с алгоритмами машинного обучения (например DLSS от NVIDIA).
Классификация методов сглаживания
Рассмотренные методы сглаживания можно условно разделить на несколько категорий. Первая — методы пространственного сглаживания (supersampling). Сюда относится классический SSAA, а также его оптимизированный подвид MSAA. Эти подходы выполняются на этапе рендеринга сцены, формируя изображение с повышенным числом выборок на пиксель. SSAA повышает разрешение всей картинки целиком, тогда как MSAA повышает количество выборок внутри пикселя. Пространственные методы дают лучшее качество и сглаживают все детали, но требуют самых больших вычислительных ресурсов.
Вторая категория — постобработочное сглаживание (image-based). К ней относятся алгоритмы вроде FXAA, MLAA, SMAA, которые применяются после рендеринга кадра. Они анализируют готовое изображение и сглаживают обнаруженные контуры путём смешения пикселей по краям. Морфологические алгоритмы (MLAA, SMAA) распознают формы и линии, благодаря чему работают точнее; простые методы типа FXAA действуют быстрее, но менее эффективно. Преимущество постобработки — минимальная нагрузка на GPU, а недостаток — ограниченность доступной информации о сцене: методы видят только финальное изображение, из-за чего может слегка размывать мелкие детали наряду с «лесенками».
Третья категория — темпоральные методы (временное сглаживание). Это TAA и его разновидности (например, проприетарный вариант TXAA). Их ключевое отличие — использование данных нескольких кадров. Темпоральные алгоритмы эффективно уменьшают как aliasing статических объектов, так и мерцание движущихся объектов за счёт накопления образов во времени. Они хорошо сочетаются с отложенным рендерингом и другими современными графическими технологиями. По качеству TAA и схожие подходы часто превосходят чисто постобработочные фильтры, эффективно устраняя широкий спектр артефактов. Но у них есть и минусы — в частности, появление шлейфов (ghosting) при неправильном совмещении движений. Производительность темпоральных фильтров обычно остаётся высокой, так как они не требуют рендерить много дополнительных пикселей, однако для их работы нужны дополнительные данные (буферы истории и смещения).
Таблица 1
|
Метод |
Характеристика |
Показатель |
|
SSAA 4x |
FPS |
-65 % |
|
SSAA 8x |
FPS |
-90 % |
|
FXAA |
FPS |
-1–7 % |
|
MSAA 4x |
FPS |
-2–10 % |
|
MSAA 8x |
FPS |
-35 % |
|
SMAA 1x |
FPS |
-20–25 % |
|
SMAA T2x |
FPS |
-40–50 % |
|
TAA |
FPS |
-10 % |
Заключение
Каждый из рассмотренных алгоритмов сглаживания имеет свои сильные и слабые стороны. SSAA обеспечивает беспрецедентное качество устранения aliasing, полностью сглаживая все детали сцены, однако его стоимость в плане ресурсов чрезвычайно высока. MSAA предлагает баланс качества и скорости, сглаживая геометрию с меньшими затратами, но не решает всех проблем aliasing и постепенно вытесняется более новыми подходами. Постобработочные фильтры (FXAA, SMAA) дают быстрое улучшение изображения практически без нагрузки на систему, но сопровождаются небольшим снижением резкости и не устраняют мерцание в динамике сцены. Темпоральное сглаживание (TAA) стало стандартом в современных играх благодаря сочетанию эффективности и качества, хотя и привносит свои артефакты (размытость быстро движущихся объектов). Также остались не рассмотрены многие другие методы сглаживания — MLAA, AGAA, SRAA, GBAA, DEAA, CRAA, SBAA, CSAA и т.
Выбор оптимального метода сглаживания всегда зависит от контекста. В графических приложениях нередко предлагается несколько вариантов AA, чтобы пользователь мог подобрать баланс между чёткостью картинки и быстродействием под возможности своего оборудования. В перспективе ожидается дальнейшее развитие гибридных подходов, сочетающих сильные стороны разных алгоритмов (например, комбинация темпорального сглаживания с методами машинного обучения для повышения чёткости). Совершенствование методов сглаживания остаётся актуальной задачей компьютерной графики: даже с ростом разрешений и производительности спрос на эффективное устранение aliasing-артефактов не исчезает.
Литература:
- Tomas Akenine-Moller, Eric Haines. Real-Time Rendering. — 4 th edit. — US, Florida: «CRC Press», 2018. ISBN 978–1–1386–2700–0
- Charles A. Wüthrich. Computer Graphics:8 — Aliasing and Antialiasing [Электронный ресурс] // Bauhaus-Universität Weimar. URL: https://www.uni-weimar.de/fileadmin/user/fak/medien/professuren/Computer_Graphics/course_material/Graphics___Animation/8-antialiasing.pdf (дата обращения: 01.11.2025).
- Alexander Grahn. An Image and Processing Comparison Study of Antialiasing Methods [Электронный ресурс] // Blekinge Institute of Technology. URL: https://www.diva-portal.org/smash/get/diva2:972774/FULLTEXT02.pdf (дата обращения: 01.11.2025).
- Nick Evanson. How 3D Game Rendering Works: Anti-Aliasing [Электронный ресурс] // Techspot. URL: https://www.techspot.com/article/2219-how-to-3d-rendering-anti-aliasing/ (дата обращения: 02.11.2025).
- The blog at the bottom of the sea. 4-Rook Antialiasing (RGSS) [Электронный ресурс] // Demofox. URL: https://blog.demofox.org/2015/04/23/4-rook-antialiasing-rgss/ (дата обращения: 02.11.2025).
- Timothy Lottes. FXAA [Электронный ресурс] // NVIDIA. URL: https://developer.download.nvidia.com/assets/gamedev/files/sdk/11/FXAA_WhitePaper.pdf (дата обращения: 02.11.2025).
- Jeff Atwood. Fast Approximate Anti-Aliasing (FXAA) [Электронный ресурс] // Codding Horror. URL: https://blog.codinghorror.com/fast-approximate-anti-aliasing-fxaa/ (дата обращения: 02.11.2025).
- Decima. Advances in Lighting and AA [Электронный ресурс] // SIGGRAPH 2017. URL: https://advances.realtimerendering.com/s2017/DecimaSiggraph2017.pdf (дата обращения: 02.11.2025).
- Joey de Vries. Anti-Aliasing [Электронный ресурс] // Learn OpenGL. URL: https://learnopengl.com/Advanced-OpenGL/Anti-Aliasing (дата обращения: 02.11.2025).
- Vulkan. MSAA (Multisample anti-aliasing) [Электронный ресурс] // Vulkan Documentation. URL: https://docs.vulkan.org/samples/latest/samples/performance/msaa/README.html (дата обращения: 02.11.2025).
- Jason Yang. A Directionally Adaptive Edge Anti-Aliasing Filter [Электронный ресурс] // SIGGRAPGH 2011. URL: https://www.iryoku.com/aacourse/downloads/02-A-Directionally-Adaptive-Edge-Anti-Aliasing-Filter.pdf (дата обращения: 02.11.2025).
- Jorge Jimenez. SMAA: Enhanced Subpixel Morphological Antialiasing [Электронный ресурс] // EUROGRAPHICS 2012. URL: https://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf (дата обращения: 02.11.2025).
- Jorge Jimenez. Jimenez’s MLAA & SMAA [Электронный ресурс] // SIGGRAPH 2011. URL: https://www.iryoku.com/aacourse/downloads/04-Jimenez's-MLAA-&-SMAA-(Subpixel-Morphological-Anti-Aliasing).pdf (дата обращения: 02.11.2025).
- Lei Yang, Shiqiu Liu, Marco Salvi. A Survey of Temporal Antialiasing Techniques [Электронный ресурс] // EUROGRAPHICS 2020. URL: http://behindthepixels.io/assets/files/TemporalAA.pdf (дата обращения: 02.11.2025).
- Ke Xu. Temporal Antialiasing in Uncharted 4 [Электронный ресурс] // SIGGRAPH 2016. URL: https://advances.realtimerendering.com/s2016/ (дата обращения: 02.11.2025).
- Unigine Developer. Temporal Anti-Aliasing [Электронный ресурс] // Unigine. URL: https://developer.unigine.com/en/docs/latest/principles/render/temporal_aa/ (дата обращения: 02.11.2025).
- Tatu Aalto. Towards Cinematic Quality, Anti-aliasing in Quantum Break [Электронный ресурс] // Game Developers Conference 2016 Europe. URL: https://media.gdcvault.com/gdceurope2016/presentations/Aalto_Tatu_Towards_Cinematic_Quality.pdf (дата обращения: 02.11.2025).

