Описание тега fxaa
FXAA имеет два основных преимущества:
FXAA сглаживает края всех пикселей на экране, включая те, которые находятся внутри альфа-смешанных текстур, и те, которые являются результатом эффектов пиксельных шейдеров, которые ранее были невосприимчивы к эффектам MSAA без обходных путей.
Это очень быстро Версия 3 алгоритма FXAA занимает около 1,3 миллисекунды на кадр на видеокарте стоимостью 100 долларов. Было установлено, что более ранние версии в два раза превышают скорость 4-кратного MSAA, поэтому при включении FXAA вы смотрите на скромные 12–13-процентные затраты на частоту кадров, а взамен вы получаете значительное снижение псевдонимов.
Единственным незначительным недостатком является то, что вы можете увидеть небольшое нежелательное "уменьшение" краев внутри текстур или в других местах. FXAA нельзя напрямую применять к старым играм; игры должны быть специально закодированы, чтобы вызывать пиксельный шейдер FXAA, прежде чем они начнут рисовать пользовательский интерфейс игры, в противном случае он также с удовольствием сгладит края экранных элементов HUD.
Метод FXAA настолько хорош, что фактически делает все другие формы полноэкранного сглаживания в значительной степени устаревшими в одночасье. Если у вас есть опция FXAA в вашей игре, вы должны немедленно включить ее и игнорировать любые другие опции AA.
FXAA является отличным примером силы простых хаков и эвристики. Но это также отличная демонстрация того, как атака на проблемы программирования под другим углом - то есть, вместо того, чтобы воспринимать экран как совокупность многоугольников и линий, думать о нем как о совокупности пикселей - может помочь вам решить вычислительно трудные проблемы быстрее и, возможно, лучше, чем кто-либо думал, возможно.
Ниже приводится описание FXAA, написанное самим Лоттесом, описывающее FXAA более подробно. Источник
(1.) FXAA был разработан, чтобы быть быстрым методом сглаживания на основе шейдеров после обработки, который может улучшить качество изображения, когда приложение или игра не могут позволить себе использовать аппаратные методы сглаживания, такие как MSAA или CSAA. FXAA не предназначен для замены MSAA / CSAA или любого другого аппаратного метода AA, а просто предлагает другой вариант.
FXAA - интересный вариант для игры, которая использует отложенный рендеринг и не имеет поддержки MSAA, или для ноутбука, который не может достаточно быстро запустить 4x MSAA в конкретной игре. Но для игр, которые имеют встроенную поддержку MSAA на компьютерах более высокого уровня, опция 4x MSAA будет иметь более высокое качество.
(1.a.) Как фильтр постобработки, работающий без нескольких выборок на пиксель, FXAA имеет некоторые ограничения в отношении качества, которого он может достичь. FXAA может улучшить качество по краям, но не очень хорошо работает на горизонтальных или вертикальных краях. Поскольку FXAA работает без MSAA, он также пытается найти области изображения, которые могут вызвать дрожание в движении, и уменьшает контрастность, чтобы уменьшить дрожание в движении (по сравнению с отсутствием АА). Этот эффект может выглядеть как смягчение изображения.
(2.) FXAA не смешивается с MSAA/CSAA. FXAA предназначен для поиска краев на изображениях без AA, а шаги градиента MSAA путают фильтр FXAA. При этом некоторые разработчики, такие как DICE с Battlefield3 для Windows, решили предложить опцию FXAA даже при включенном MSAA, и это может повысить качество таких вещей, как деревья и кустарники, которые используют технику, называемую "альфа-тест", которая не смешивается как хорошо с MSAA.
(3.) FXAA выпускается в двух различных формах: драйвер-FXAA и следующие исходные формы, (a.) FXAA v1, выпущенный как образец SDK (медленный, но высококачественный). (b.) Выпуск FXAA v2 в исходном виде в качестве прототипа для PS3 и 360 (быстрый, но низкокачественный). (c.) Выпуск FXAA v3.11 в исходном виде в виде высокооптимизированной версии v1 и v2 (с режимом ПК и консоли).
Исходные версии FXAA были разработаны как шейдеры, которые разработчик мог загрузить и просто интегрировать непосредственно в свою игру или приложение. Таким образом, FXAA можно было переносить на любой компьютер с Linux/Windows/Mac/PS3/360, и разработчик мог изменить и настроить FXAA для своего приложения.
Позже NVIDIA решила, что было бы неплохо предложить какую-либо форму FXAA в качестве варианта драйвера для игр или приложений, в которых еще не интегрирован FXAA. Игры, которые интегрируют источник FXAA, непосредственно запускают FXAA перед рендерингом элементов HUD, текста или пользовательского интерфейса, однако драйвер-FXAA можно применять только после рендеринга HUD/UI непосредственно перед отправкой кадра на дисплей или компоновкой для оконного режима. Таким образом, у драйвера FXAA есть недостаток, заключающийся в том, что он применяется к тексту, а FXAA немного смягчит текст. Кроме того, драйвер-FXAA немного дороже, потому что имеет некоторую дополнительную логику для уменьшения фильтрации текста по сравнению с исходными версиями FXAA.
Еще одна вещь, связанная с драйвером FXAA, заключается в том, что вам может быть трудно получить снимки экрана. По крайней мере, в Windows я могу подтвердить, что driver-FXAA применяется после того, как утилиты, такие как fraps, захватывают свои записи. В Linux я не уверен точно, где команда драйверов делала интеграцию, но думаю, у вас возникнет та же проблема.