====== Антиалиасинг ====== Способ интерполяции пикселей для сглаживания растрового изображения. Основной принцип - использование промежуточных оттенков на цветовых границах изображения для визуального устранения артефакта зубчатости ("лесенки"). Необходимость в подобной технике возникла из-за низкого разрешения дисплеев, на которых были четко различимы отдельные пиксели. Наклонные линии, многоугольники, кривые, текст - любые нетривиальные изображения, сгенерированные компьютером, без сглаживания выглядят зубчатыми. Проблема принципиально решается использованием HiDPI дисплеев с более высоким разрешением и высокой плотностью пикселей, но внедрение таких дисплеев пока возможно далеко не везде, поэтому алгоритмы сглаживания все еще необходимы. Сглаживание впервые было применено в 1972 г. в Массачусетском технологическом институте группой Architecture Machine Group, которая позже стала основной частью Media Lab. ===== Методы ===== Ниже перечислены некоторые популярные алгоритмы сглаживания, применяемые в [[растеризация|растеризации]]. Чаще всего речь при этом идет о растеризации треугольников. Для отдельных графических примитивов - например, отрезков - есть свои оптимизированные методы, которые используются, например, при растеризации векторных шрифтов. **Избыточное сглаживание** (supersample anti-aliasing, сокращенно SSAA) позволяет полностью устранить "лесенки" на границах полигонов путем фактического рендеринга в более высоком разрешении. В простейшем варианте разрешение удваивается (2xSSAA), и на каждому пикселю итогового изображения присваивается усредненный цвет 4 субпикселей. Избыточное сглаживание потребляет немало вычислительных ресурсов, а также очень сильно зависит от производительности видеопамяти - скоростная графическая плата с быстрой памятью сможет просчитать полноэкранное сглаживание с меньшим ущербом для производительности, чем графическая карта более низкого класса. **Адаптивное сглаживание** (multisample anti-aliasing, сокращенно MSAA) - оптимизация SSAA, сокращающая объем вычислений, связанных с субпикселями. Если текущий итоговый пиксель полностью принадлежит растрируемому треугольнику, то расчет цвета (фрагментный шейдер) выполняется только один раз. Фактически, данный метод увеличивает разрешение только при рендеринге пикселей, относящихся к краям полигонов, что значительно повышает общее быстродействие. Как результат, MSAA хорошо показывает себя, если объекты закрашиваются относительно однородными цветами - главным его минусом является полное отсутствие сглаживания внутри полигонов. Это особенно заметно, например, при рендеринге бликов, отражений и преломлений. Поддержка MSAA, как правило, встроена в видеодрайвер - это базовый метод сглаживания, доступный приложениям "из коробки". **Быстрое приближенное сглаживание** (fast approximate anti-aliasing, сокращенно FXAA) - метод сглаживания, предложенный в 2011 году компанией NVIDIA и представляющий собой однопроходный пиксельный шейдер. FXAA анализирует изображение, определяя контрастные области и размывая их. Метод более эффективен, чем MSAA, и сглаживает не только края полигонов, но и внутренности. FXAA - один из самых популярных сегодня методов сглаживания, представляющий собой хороший компромисс между производительностью и качеством результата. **Многокадровое сглаживание** (multiframe sampled anti-aliasing, сокращенно MFAA) - вариант MSAA от NVIDIA, комбинирующий два последних отрендеренных кадра с использованием разных позиций для субпикселей. Благодаря чередованию позиций выборок, 4xMFAA столь же быстр, как и 2xMSAA, однако обеспечивает качество изображения на уровне 4xMSAA.