антиалиасинг

Антиалиасинг

Способ интерполяции пикселей для сглаживания растрового изображения. Основной принцип - использование промежуточных оттенков на цветовых границах изображения для визуального устранения артефакта зубчатости («лесенки»).

Необходимость в подобной технике возникла из-за низкого разрешения дисплеев, на которых были четко различимы отдельные пиксели. Наклонные линии, многоугольники, кривые, текст - любые нетривиальные изображения, сгенерированные компьютером, без сглаживания выглядят зубчатыми. Проблема принципиально решается использованием 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.

  • антиалиасинг.txt
  • Последнее изменение: 2021/03/15 12:24
  • (внешнее изменение)