Какое сглаживание лучше fxaa или taa


Типы сглаживания и их принудительное включение в играх | Видеоигры | Блог

Любой хотя бы раз видел в игре настройку «Сглаживание», оно же Antialiasing. Это функция, позволяющая устранить эффект лесенки на краях объектов и сделать изображение менее пилообразным. Производители видеокарт создали немало различных методик, общее количество которых исчисляется десятками. Многие из них устарели и забыты, а некоторые используются до сих пор.

В этой статье мы рассмотрим все актуальные типы сглаживания в играх, проведем сравнение, а также научимся их использовать.

Типы сглаживания

В качестве образца будет использоваться игра Track Mania вкупе с Full HD разрешением монитора. Видеокарта GTX 1070. Первый скриншот «чистый», без сглаживания. Просматривать рекомендуется в полном размере.

FXAA (Fast approXimate Anti-Aliasing)

Метод сглаживания, который затрагивает всю картинку изображения на этапе пост-обработки, то есть перед самым ее выводом на экран. Имеет 9 степеней качества. Неплохо сглаживает геометрию. Не устраняет прерывистую лесенку пикселей, что хорошо видно на проводах в воздухе. Не добавляет детализации и мылит текстуры.

Имеет практически идентичный, но малоизвестный аналог MLAA, который работает за счет процессора, а не видеокарты. Сглаживание MLAA доступно в крайне ограниченном количестве игр, поэтому рассматриваться не будет.

SMAA (Subpixel Morphological Anti-Aliasing)

Продвинутое пост-сглаживание, основанное на FXAA и MLAA. Дает ощутимо лучший результат, но потребляет чуть больше ресурсов видеокарты. Имеет четыре степени качества.

Детализации также не добавляет, однако дает меньше паразитных искажений, лучше сглаживает геометрию и меньше мылит изображение.

MSAA (Multi-Sample Anti-Aliasing)

Метод основан на выборочном масштабировании объектов в более высоком разрешении. Текстуры при этом не затрагиваются. Добавляет детализацию на контурах, уменьшает рябь картинки в движении. На современных видеокартах практически не затрагивает производительность. Распространенный и предпочтительный тип сглаживания.

Когда в играх вы выбираете степень сглаживания x2, х4 или x8 подразумевается именно MSAA.

SSAA (Super-Sample Anti-Aliasing)

Самое лучшее, самое правильное и самое требовательное к производительности сглаживание. В отличие от MSAA происходит масштабирование всех возможных объектов, а также шейдеров и текстур.

При выборе настройки SSAA x 4 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680x4320 от изначального 1920x1080.

Очень хорошо сглаживает лесенку пикселей, улучшает внешний вид текстур. Объекты вдали приобретают реальную четкость. Рябь в играх полностью исчезает, что делает картинку реалистичной и более приятной для глаз. В некоторых играх регулируется процентным соотношением в виде ползунка (может называться "масштабирование разрешения").

Такое сглаживание лучше использовать в старых играх, так как в современных будут просадки частоты кадров даже на самых мощных видеокартах.

К сожалению, далеко не все игры работают с SSAA сглаживанием, даже если попытаться включить его принудительно.

Иногда в настройках попадается SSAA x 0.5. При его использовании игровое разрешение уменьшается вчетверо (до 960x540), что ухудшает качество картинки, но дает прирост производительности.

DSR (Dynamic Super Resolution)

Технология от NVIDIA, позволяющая использовать разрешения, превышающие возможности вашего монитора. Максимальное значение x 4, что соответствует формату 2160p. По качеству немного превосходит SSAA x2.

И если SSAA работает с внутренним разрешением игры, то DSR запускает игру в настоящем 4К, которое затем даунскелится до родного разрешения монитора. Это дает возможность снимать видео и делать скриншоты в 3840x2160 на мониторе с меньшим разрешением.

Из минусов интерфейс в играх может стать очень мелким и нечитаемым, если игра не оптимизирована под масштабирование игровых элементов. Второй минус это смена чувствительности мыши, курсор будет двигаться медленнее, так как ему нужно пройти больше пикселей.

В отличие от прочих типов сглаживания, DSR можно активировать в любой игре, в которой есть возможность выбора поддерживаемых разрешений.

У AMD есть свой аналог, названный VSR (Virtual Super Resolution).

Единственное полезное значение это x4, дающее реально качественное сглаживание. На других значениях картинка мало того, что не сглаживается, так еще и становится более зубчатой.

Комбинации и ответвления

Производители частенько любят хитрить со сглаживанием, комбинируя методы. В качестве примера TXAA: на самом деле это всего лишь одновременная работа MSAA и FXAA низкого качества. Адаптивным сглаживанием называют SSAA + MSAA. Многокадровое сглаживание MFAA это просто надстройка для MSAA, призванная улучшить качество (через панель управление не заработала ни в одной игре).

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

Грубо говоря, практически все сторонние типы сглаживания являются либо модификацией MSAA, либо комбинацией с использованием различных пост-эффектов.

Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360x8640), при 26 кадрах в секунду.

В итоге игра 2006 года почти "поставила на колени" GTX 1070. Ну а про игры типа Metro Redux и говорить нечего, всего 1-3 фпс.

Использование

FXAA

Для активации нам понадобится программа FXAA Tool.

В главном окне программы убираем галочку Pre Sharpen. Далее нажимаем кнопку "Add", программа попросит нас ввести имя профиля (можете написать любое), а затем необходимо указать путь к папке с игрой.

Переходим во вкладку "AntiAliasing". Двигая ползунок влево и вправо, мы изменяем баланс между производительностью и качеством. После того, как необходимый уровень выбран, нажимаем кнопку "Save". Теперь при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать достаточно в главном меню нажать кнопку "Remove".

SMAA

Для его использования необходимо скачать программу SweetFX.

Первым делом нажимаем кнопку Add new game и указываем путь на файл запуска игры (.exe).

В списке игр появится строчка с именем файла, щелкаем по ней один раз.

Нажимаем кнопку Add SweetFX.

Заходим в настройки SweetFX Injector settingsи выбираем желаемый уровень качества.

Лучше всего поставить SMAA_PRESET_HIGH. Нажимаем Save settings, а затем в главном окне Save new config.

Как и в случае с FXAA Tool при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать необходимо в главном меню нажать кнопку “Remove SweetFX”.

MSAA \ SSAA \ VSR (Radeon)

Новая панель управления от AMD максимально упрощена. Чтобы активировать VSR, нужно лишь нажать соответствующую кнопку в разделе "Дисплей". После этого в играх появятся новые доступные разрешения.

Активация MSAA и SSAA также не доставит никаких проблем. Переходим во вкладку «Игры» и изменяем несколько настроек.

  1. Режим сглаживания — переопределить настройки приложения.
  2. Ставим желаемый уровень сглаживания (например 4X).
  3. Выбираем метод сглаживания.

Избыточная выборка — это SSAA, а множественная выборка — это MSAA.

MSAA \ SSAA \ DSR (GeForce)

Для включения DSR необходимо перейти в раздел «Управление параметрами 3D» и выбрать строчку «DSR-Степень».

Появится небольшое окно, в котором вы сможете выбрать, во сколько раз большие от оригинального разрешения вам нужны. К примеру, x1.78 соответствует разрешению 2560x1440, а x4 соответствует 3840x2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.

Также необходимо выставить параметр «DSR-плавность» на значение 0 %. В противном случае изображение будет слегка размыто.

Для включения MSAA, в этом же разделе (Управление параметрами 3D) нужно изменить два параметра.

  1. «Сглаживание — режим» выставляем «Замещение настроек приложения».
  2. «Сглаживание — параметры» выставляем желаемую степень сглаживания (например 4x).

Затем нажимаем кнопку «Применить».

Для настроек 3D имеется две вкладки: глобальные параметры и программные настройки. Если вы меняет параметры в первой вкладке, то они применяются ко всем приложениям, а если вы меняете значения во второй вкладке, то настройки применяются только к выбранной вами игре.

Для SSAA сглаживания настройки в панели управления не предусмотрено (исключение — старые видеокарты).

Включить его получиться только с помощью сторонней утилиты NVIDIA Profile Inspector.

  1. Запускаем программу и ищем раздел 3-Antialiasing.
  2. Для строки Antialiasing — Mode меняем значение на Override any aplication settings.
  3. Для строки Antialiasing - Setting выбираем уровень сглаживания. Рекомендуется либо 2x2 Supersampling, либо 4x4 Supersampling.
  4. Нажимаем кнопку Apply changes.

Для сброса настроек вы можете нажать на значок NVIDIA.

Сравнение

Для сравнения качества было решено выделить фрагмент картинки, затрагивающие провода, текстовую надпись Track Mania и дорожные перила.

Вторым фрагментом выступит автомобиль, для оценки сглаживания изгибов и текстур.

А теперь сравним влияние сглаживания на FPS в игре.

Исходные материалы

Все использованные в статье игровые скриншоты, а также несколько дополнительных вы можете скачать в архиве по ссылке.

Track Mania Nations — игра, использованная для демонстрации типов сглаживания доступна для бесплатного скачивания на странице в Steam.

Вывод

Мы изучили эффективность сглаживания на примерах, а также научились принудительно его использовать c помощью различных программ и панели управления видеокартой.

Теперь вы в любой момент сможете улучшить качество изображения, даже если в самой игре настройки сглаживания не предусмотрено.

  • В любой требовательной игре включать сглаживание MSAA x4 (или выше), даже если придется понизить другую графическую настройку. Всё-таки четкость контуров играет большую роль, нежели сверхдальняя прорисовка теней.
  • В играх, в которых не используется мышка (гонки, аркады, файтинги и тд.) применять технологию DSR x4.
  • В старых играх активировать сглаживание SSAA x4, так как сильно повышается качество игрового мира, а производительности видеокарты хватает с запасом.

club.dns-shop.ru

FXAA, TXAA, ССАА, а может быть, MSAA – что лучше выбрать в играх?

Сглаживание — это улучшение качества отображаемой графики. Оно существует в разных версиях — FSAA, MSAA, MFA, CSAA, CFAA, MLAA, SMAA, HRAA, FXAA, TXAA, TAA и, наконец, SSAA.

Фото: mos-holidays

Что такое сглаживание?

Компьютерная графика состоит из пикселей, т.е. маленьких точек. Чем выше разрешение, тем больше точек, поэтому изображение становится более детализированным. Проблема в том, что пиксели квадратные, поэтому при отражении закругленных элементов или наклонных линий краев объекта, пиксели образуют неровности. Сглаживание предотвращает это. Но у него есть и свои недостатки. Во-первых, это ухудшает производительность. Во-вторых, это приводит к небольшому размыванию изображения. Со временем было разработано несколько способов, которые улучшают или изменяют метод сглаживания.

SSAA

SSAA показывает очень хорошие результаты. Можно сказать, что оно дает лучшее качество, но при этом оказывает большое и негативное влияние на плавность игры. Это связано с тем, что изображение генерируется с более высоким разрешением, а затем масштабируется до разрешения экрана. Для его использования нужна действительно мощная видеокарта. Но это устаревшее решение и сегодня оно встречается очень редко.

FSAA

Это самое старое и в то же время, пожалуй, самое худшее сглаживание. Оно работает в полноэкранном режиме и, проще говоря, состоит в размывании изображения, что приводит к слиянию неровных краев пикселей и изображение становится менее четким.

MSAA

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

MFAA

Еще одним улучшением по сравнению с FSAA и MSAA является MFAA. Прежде всего, эта технология хранит данные в гораздо более быстрой оперативной памяти, а не на диске. Благодаря этому можно анализировать каждый последующий кадр, благодаря чему эффекты намного лучше. К сожалению, это работает только на видеокартах Nvidia GeForce серии 900.

Фото: gapm

MLAA

Решение, разработанное ATI (в настоящее время AMD). Оно основано не только на анализе пикселей, но и на анализе формы объекта. Важно отметить, что эффект передается после рендеринга кадра. Это положительно сказывается на производительности, но не впечатляет своим качеством. Изображение может показаться менее резким. Сегодня это не очень популярная технология, которая редко встречается в играх.

SMAA

Первоначально эта технология предназначалась для консолей, но со временем нашла применение и в персональных компьютерах. По сравнению с FSAA, она оказывает меньшее влияние на плавность игрового процесса. Для многих это решение считается наиболее сбалансированным с точки зрения качества и производительности.

FXAA

Технология, разработанная компанией Nvidia. Она минимально влияет на производительность. В этом случае анализируются сами пиксели. Такой способ работает как на прозрачных краях, так и на тенях. Но если что-то минимально обременяет GPU, то эффект, вероятно, будет не самый лучший — минимум размытие изображения.

TXAA/TAA

Продукт Nvidia. По сравнению с другими решениями, разница заключается в одновременном анализе двух кадров, благодаря чему можно получить более плавный эффект. Кроме того, TXAA/TAA устраняет неровности, т.е. эффект перемещения краев объекта. Как это происходит? Используется та же технология, что и MSAA, но добавляется эффект постобработки.

DLSS

Еще одно новое решение, разработанное компанией Nvidia. Для этого используется искусственный интеллект, который учится создавать изображения с высоким разрешением из изображений с низким разрешением. Это дает хорошие результаты и очень положительно влияет на плавность игр.

Что лучше?

Здесь нельзя дать однозначного ответа. Многое зависит от самой игры. Но если у вас есть видеокарта GeForce RTX, то стоит переключиться на новейшую технологию DLSS. В противном случае рекомендуется использовать MSAA или SMAA. А если кто-то переживает о производительности, тогда сглаживание можно полностью отключить или выбрать параметр FXAA, который не сильно влияет на количество отображаемых кадров.

studio.ru.com

Типы сглаживания в играх

Начнем с определения:

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

Почему возникает «зубчатость»? Проблема в том, что мониторы современных ПК состоят из квадратных пикселей, а значит на них действительно прямыми будут только горизонтальные и вертикальные линии. Все линии, находящиеся под углом, будут строиться из пикселей, находящихся по диагонали друг к другу, что и вызывает «зубчатость». К примеру, справа на картинке — вроде бы ровная линия. Однако стоит ее увеличить, как сразу становится видно, что никакая она не прямая:

Чем это грозит в играх? Тем, что, во-первых, при движении будет возникать эффект «мельтешения» — такие неровные линии будут постоянно перестраиваться, что будет и отвлекать от игры, и делать картинку неестественной. Во-вторых — далекие объекты будут выглядеть нечетко. 

Сразу же возникает вопрос — а как убрать эти неприятные эффекты? Самый простой способ — сделать пиксели меньше при том же размере экрана (иными словами — сделать разрешение больше и поднять плотность пикселей). Тогда «зубчатость» будет проявляться слабее, и картинка будет выглядеть естественнее. Но увы — способ хоть и простой, но дорогой, да и для видеокарты это достаточно сильная дополнительная нагрузка. И тогда, дабы улучшить картинку не меняя монитора, было придумано сглаживание.

Типы сглаживания

SSAA (Supersample anti-aliasing) — самое тяжелое сглаживание, потому что оно, по сути, описывает способ убирания лесенок, который я привел выше: при четырехкратном (4х) сглаживании видеокарта готовит картинку в разрешении вчетверо выше, чем выводит на экран, потом происходит усреднение цвета соседних пикселей и вывод на экран в исходном разрешении. Получается, что виртуальная плотность пикселей вдвое выше, чем у экрана, и лесенки практически перестают быть заметными. Очень сильно сказывается на производительности: к примеру, если разрешение в игре 1920х1080, то видеокарта вынуждена готовить картинку в 4К — 3840х2160. Однако результат получается великолепным — картинка выглядит как живая, никакого мельтешения нет:

MSAA (Multisample anti-aliasing) — улучшенная версия SSAA, которая потребляет гораздо меньше ресурсов. К примеру — зачем сглаживать то, что находится внутри текстуры, если лесенки есть только на краях? Если текстура представляет собой прямую линию под углом к игроку, то можно сгладить лишь один участок и продолжить эффект на весь край текстуры. В результате нагрузка на видеокарту становится ощутимо меньше, и по тяжести даже 8х MSAA оказывается ощутимо легче 4х SSAA при сравнимом качестве картинки.

CSAA и CFAA (Coverage Sampling anti-aliasing и Custom-filter anti-aliasing) —  по сути несколько улучшенный MSAA от Nvidia и AMD (позволяют выбирать дополнительные отсчёты «перекрытия» пикселя, по которым можно уточнять итоговое значение цвета попадающего на край треугольника экранного пикселя). 8x CSAA/CFAA дает сравнимое с 8x MSAA качество картинки, однако потребляет примерно столько же ресурсов, столько и 4х MSAA. На сегодняшний момент оба сглаживания не используются — разработчики игр решили использовать унифицированные для всех видеокарт сглаживания. 

FXAA (Fast approXimate anti-aliasing) — нетребовательное быстрое сглаживание. Алгоритм прост — совершается один проход по всем пикселям изображения и усредняются цвета соседних пикселей. Это слабо нагружает видеокарту, однако сильно мылит картинку (обратите внимание на четкость текстуры камня), делая далекие объекты вообще неузнаваемыми:

Такое сглаживание имеет смысл включать только если лесенки терпеть не можете, а видеокарта не тянет лучшее сглаживание. По сути тут идет выбор между замыливанием изображения и лесенками.

MLAA (MorphoLogical anti-aliasing) — аналог FXAA от Intel. Работает схожим образом, однако алгоритм сложнее — все изображение разбивается на Z, L и U -образные части, и сглаживание происходит смешением цветов пикселей, входящих в каждую такую часть:

Из особенностей — это единственное сглаживание, работающее полностью на процессоре, поэтому практически не влияет на fps в играх при мощном процессоре. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA, однако до 2x MSAA все еще далеко.

SMAA (Subpixel Morphological anti-aliasing) — смесь FXAA и MLAA. По сути несколько улучшенный MLAA, но работающий на видеокарте (так как процессор для сглаживания подходит гораздо хуже). Дает картинку, сравнимую с MLAA, лучше, чем FXAA (обратите внимание на бочки), однако потребляет больше ресурсов:

Такое сглаживание является хорошей заменой FXAA, и по уровню нагрузки на видеокарту находится между отсутствием сглаживания и 2x MSAA, так что есть надежда, что в будущем игр с ним будет все больше.

TXAA(Temporal antialiasing) — новая технология сглаживания от Nvidia. В отличии от других типов сглаживания, которые работают только с одним кадром (то есть с неподвижной картинкой), это умеет работать с движущимися объектами и хорошо убирает «мельтешение» картинки. По сути является смесью MSAA и SMAA, дает очень качественную картинку, однако немного ее мылит и очень требовательно к ресурсам.

Итог

В итоге — какое сглаживание выбрать? Если видеокарта совсем плохо тянет игру, то или оставаться без сглаживания и смотреть на лесенки, или же выбрать FXAA и любоваться на мыло. Если же система по-мощнее, но MSAA все еще не тянет — стоит выбрать MLAA или SMAA. Если видеокарта играючи справилась с 8х MSAA — стоит смотреть на SSAA или TXAA.

www.iguides.ru

Сглаживание. Какое лучше?

Методов сглаживания придумано множество. На протяжении длительного времени они видоизменялись и улучшались. И по прошествии многих лет, их накопилось так много, что не всегда понятно пользователю и вводит его в ступор при выборе настроек в играх и приложениях. В этой статье попробуем дать описание наиболее известным, которые условно делятся на два типа:

  1. когда применяются в момент формирования и построения сцены.
  2. когда используется фильтр к уже готовому изображению (постобработка).

При чем, одновременно можно использовать оба метода сразу. Какой выбрать исходя из эстетических соображений и ресурсов  видеокарты, решать конечно индивидуально.


Начнем с того, что AA (Anti-Aliasing, Сглаживание) — способ устранения "ступенчатости" на краях объектов, линий, которые находятся под наклоном и не являются ни строго вертикальными и ни строго горизонтальными. Особенно "лесенка" заметна на стыках полигонов с разными цветами.
В играх может использоваться, когда видеокарте не хватает мощности для вывода изображения в высоком разрешении, где все детали плавные и приятны глазу. Если AntiAliasing отрабатывает хорошо и качественно, то из-за этого страдает производительность, падает фпс в играх. Если сглаживает плохо, то страдает графика, появляется замыливание картинки, артефакты. Поэтому, если есть возможность играть при высоком разрешении и фпс при этом падает не на много, не включайте AA, играйте на высоком. Так же из особенностей, сглаживание "лесенки" может быть включено на уровне настроек видеокарты и при этом еще и на уровне приложений. Эффект при этом "усиливается", если используется первый и второй тип сглаживания. Поэтому если собрались испытывать антиальясинг, убедитесь чтобы оно было включено где то в одном месте, дабы не получить замыленность.

Первый тип

Влияние на фпс прямое, в зависимости от метода и пропускной способности видеопамяти.

SSAA (SuperSample Anti-Aliasing, Избыточная выборка сглаживания) — Самое тяжелое, но и самое качественное и жутко нагружающее видеокарту. В ускорителях применяется регулярная маска размером от 2x1 до 4x4. От этого и появляется нагрузка, при разрешении 1920x1440 и маске 2х2 строится кадр с разрешением 3840х2880 (что требует памяти в 4 раза больше), после этого, усредняются цвета всех суб-пикселей в маске и уже после кадр сжимается и подается на вывод на экран в исходном разрешении.
Существовала технология в основном до DirectX 8, пока не появился MSAA. Из-за большого влияния на фпс от него отказались. Но так как мощность видеокарт перманентно росла, NVIDIA его вернули в строй и используется для игр с поддержкой DX9, DX10, DX11.
Хотите 60 фпс? Тогда сами сможете прикинуть под какой нагрузкой будет работать видеоадаптер. Однако, от картинки вы получите наслаждение. Данный метод рекомендуется обладателям производительных видюх для современных игр.

MSAA (MultiSample Anti-Aliasing, Множественная выборка сглаживания) — пришел на смену SSAA, потребляя меньше ресурсов, но и результат дает немного другой. Изображение по-прежнему рендерится в большем разрешении, но производительность достигнута за счет AA только краев объекта, а не всей картинки как в SSAA. Из минусов, на прозрачных полигонах (стекла, вода..) данный метод не работает, поэтому лесенку иногда можно лицезреть. И так как сглаживается только часть изображения, то можно наблюдать еще и артефакты. Плюс несовместимость с методом отложенного освещения. Нужно помнить, что MSAA выгоднее юзать на низких разрешениях. Чем оно выше, тем накладнее по ресурсам. Так же рекомендуется обладателям топовых видеокарт, с большим количеством видеопамяти.

CSAA (Coverage Sampling Anti-Aliasing, Выборка сглаживания с перекрытием)
 — это продолжение эволюции SSAA->MSAA->CSAA, который сохранил совместимость с алгоритмами используемых в железе. Улучшение достигнуто за счет того, что в буфер кадра передается еще информация о субсэмпле с соседнего пикселя. Что в итоге помогает рассчитать более качественное сглаживание.
При равных уровнях (4,8..) CSAA и MSAA, качество кадра всегда будет у CSAA выше, а по производительности они друг другу не будут уступать.

Другими словами:
SSAA - сглаживает всю сцену
MSAA - сглаживание происходит только по краям объектов
CSAA - за счет добавления сэмплов перекрытия, сглаживание краев объектов происходит с учетом соседних пикселей. Т.е. тут сделан упор на качество кадра, практически при том же уровне уровне нагрузки на видеокарту, что и у MSAA.

FSAA (Full Scene Anti-Aliasing, Полноэкранное сглаживание) — То же что и SSAA, но от AMD и с небольшими отличиями.

QCSAA (Quality Coverage Sampling Anti-Aliasing, Выборка сглаживания с перекрытием) — не трудно догадаться, что это улучшенная версия CSAA, только использует вдвое больше сэмплов для анализа

EQAA (Enhanced Quality Anti-Aliasing, Сглаживание повышенного качества) — У NVidia - CSAA, у AMD - EQAA. Отличаются положениями сэмплов и в зависимости от режима их количеством.

AAA (Adaptive Anti-Aliasing, Адаптивное сглаживание) — Как известно у MSAA есть проблема при сглаживании краев на прозрачных объектах. Данный способ призван устранить такую проблему. Является синергией  мультисемплинга (MSAA) и суперсемплинга (SSAA). Как можно догадаться, данный вид ресурсоемок и рекомендуется обладателям топ карт. Используется у AMD.

TrAA (Transparency Anti-Aliasing, Прозрачное сглаживание) — тоже что и AAA, только от NVIDIA.

TrAAA (Transparency Adaptive Anti-Aliasing, Адаптивное Прозрачное сглаживание) — см. TrAA

TrMSAA (Transparency Multi-Sampling Anti-Aliasing, Прозрачная множественная выборка сглаживания)  использует краевой метод (MSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TMAA

TrSSAA (Transparency Super-Sampling Anti-Aliasing, Прозрачная полноэкранная выборка сглаживания) 
 использует полноэкранное сглаживание (SSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TSAA

OGSSAA  (Ordered Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с упорядоченной решеткой) — Классический SSAA в котором используется решетка с упорядоченной выборкой, выровненная по вертикали и горизонтали.

RGSSAA (Rotated Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с повернутой решеткой) — Все тот же SSAA, с уточнением расположения решетки наклоненной под определенным углом. Данный метод показывает качество немного лучше, чем  OGSSAA, при почти горизонтальных или вертикальных краях объектов (слегка наклоненных).

SGSSAA (Sparse Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с разряженной решеткой) — выборки располагаются на регулярной сетке, как в OGSSAA. Но выборка производится лишь на некоторых узлах сетки. Здесь заложен компромиссный подход между производительностью и качеством изображения. Метод используется у NVidia

JGSSAA (Jittered Grid Super-sampling Anti-aliasing, Избыточная выборка с искаженной решеткой) - каждый пиксель так же разбивается на субпиксели, но выборка сэмплов располагается случайно (Стохастическая) или со смещением внутри субпикселя.

HRAA (High-Resolution Anti-Aliasing, Полноэкранное сглаживание для высоких разрешений) — метод полноэкранного сглаживания в NVIDIA с 5-ю сэмплами. Качество как 4xSSAA, по нагрузке как 2xSSAA.

HRAA (Hybrid Reconstruction Anti-Aliasing, Гибридное сглаживание) — решение использующее лучшие практики, на основе краевого метода (MSAA, CSAA), постобработки с аналитикой и временного антиалиасинга.

EDAA (Edge Detect Anti-Aliasing, Краевое сглаживание) — так же краевой метод + обсчитываются контрастные переходы еще и на объектах и текстурах. Что в итоге сильнее садит fps. Условно можно назвать это аналогом CSAA, только от AMD. Это разновидность CFAA, описанного ниже.

CFAA (Custom Filter Anti-Aliasing, Специализированные фильтры сглаживания) — Детище AMD. Включает в себя 4 фильтра: box, narrow-tent, wide-tent, edge-detect. Каждый фильтр, это разный подход к реализации того же MSAA. 
box - стандартный подход к MSAA
narrow-tent - аналог CSAA
wide-tent - так же аналог CSAA, только количество субпикселей больше в два раза
edge-detect - при проходе фильтра edge detection по отрендеренному изображению, для определенных им пикселей, которые определяются как границы полигонов или резкие цветовые переходы, используется более качественный метод антиалиасинга с большим количеством сэмплов, а для остальных пикселей с меньшим.

QAA (Quincunx Anti-Aliasing, Шахматное сглаживание ) — метод от NVidia, в основе которого лежит учет не только своих субпикселей, но и данные берутся от соседних. При этом, при расчете финального цвета, свой сэмпл имеет вес больше, чем данные с соседних. В расчет берется 5 точек. По качеству 2xQSAA, приблизительно так же выглядит как 4xMSAA.

FAA (Fragment Anti-Aliasing, Частичное Сглаживание) — разработана компанией Matrox. Сглаживание применяемое к краям объектов. Отличие от SSAA и MSAA, в том, что края и сами объекты не увеличиваются в несколько раз по маске. Каждый пиксель делится на 16 частей и если покрытие полное, то пиксель отправляется в кадровый буфер, если неполное, то уходит в отдельный буфер. Такой пиксель считается фрагментированным, при чем в дальнейшем над ним проводится анализ и он видоизменяется. Такая реализация очень сильно экономит ресурсы видеокарты. Но есть и проблема, алгоритм определения краев не всегда корректно обнаруживает те самые края. Проблема с прозрачными объектами во всей красе.

TXAA (Temporal approXimate Anti-Aliasing, Временное приблизительное сглаживание) — технология от Nvidia, которая использует основу MSAA. В формуле расчета используется время, данные по пикселям из предыдущих кадров и данные из обрабатываемой сцены. После чего происходит усреднение по цвету. Это позволяет избавиться от мерцания и дерганья объектов в игре. Вдали дает качественную картинку, однако немного мылит близкие объекты и требования к ресурсам почти как для MSAA, хотя качество при тех же значениях лучше. 
Со слов производителя, TXAA 2x сравнимо по качеству с 8xMSAA, но при по затратам производительности сопоставимо как с 2xMSAA, а TXAA 4x выше по качеству чем 8xMSAA, но по затратам производительности сопоставимо как с 4xMSAA. Отлично подходит для сглаживания в динамике.

TSSAA (Temporal Super Sampling Anti-Aliasing, Временная избыточная выборка сглаживания) — Этот метод, что и TXAA, только не привязан к видеокартам NVIDIA и завязана на суперсэмплинг.


Второй тип
Влияние на фпс слабое. Так называемые методы пост-обработки, когда сглаживание происходит в момент вывода изображения на экран.

FXAA (Fast approXimate Anti-Aliasing, Быстрое приблизительное сглаживание) — разработка NVidia. Из названия видно, что это более производительное сглаживание по-сравнению с традиционным MSAA. Алгоритм использует простой способ обнаружения разрыва цветов фигур. В момент вывода изображения на экран усредняются по цвету все соседние пиксели. Это не нагружает видеокарту, но жутко мылит кадр. Далекие и затуманенные объекты в игре будут почти не узнаваемы. Такое сглаживание имеет смысл включать на слабых машинах, ноутбуках, нетбуках и прочих эконом вариантах.

MLAA (MorphoLogical Anti-Aliasing, Морфологическое сглаживание) — условный аналог FXAA. Методика придумана компанией Intel. Алгоритм, ищет пиксельные границы на каждом кадре, похожие на Z, L и U буквы и смешивает цвета соседних пикселей, входящих в каждую такую часть. Алгоритм переведен на использование процессора, а не GPU. Отсюда можно рекомендовать его обладателям слабых видеокарт и с более менее производительным процессором. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA. Имеется реализация у AMD, но технически может использовать и NVidia. Есть проблема: сглаживание не отрабатывает на прозрачных текстурах. Поэтому в довесок этой постобработки нужно подключать еще и TrAA для улучшения изображения. Время обработки занимает 0,9 мс. Так же есть методики MLAA реализованные на GPU.
 
SRAA (Subpixel Reconstruction Anti-Aliasing, Субпиксельное восстанавливаемое сглаживание) - новый двухпроходный алгоритм от NVidia. SRAA очень схожа с MLAA , но работает с буферами глубины и картами нормалей, из-за чего лучше определяет границы для сглаживания и затененные края. Время выполнения в целом очень низкое, основное время в алгоритме  уходит на обработку затенения. На выходе могут появляться артефакты. Для сравнения на сглаживание изображения с разрешением 1280×720 методом SSAA уходит около 5-10 мс, а у SRAA примерно 1,8 мс.

SMAA (Enhanced Subpixel Morphological Anti-Aliasing, Субпиксельное морфологическое сглаживание) — комбо из MSAA/SSAA и MLAA. По сути несколько улучшенный MLAA с добавлением локального контраста и поиском паттернов. Иногда может добавляться еще и временная избыточная выборка. Ресурсов потребляет больше чем MLAA, но задействует при этом видеокарту, а не процессор.
Можно встретить разновидности:

  • SMAA 1x: классический алгоритм SMAA, включающий точный поиск расстояний, работа с локальным контрастом для определения краев, геометрических объектов и поиск диагональных линий. Время обработки занимает 1,02 мс.
  • SMAA T2x : SMAA 1x +техники из TSAA. Время обработки занимает 1,32 мс.
  • SMAA S2x : SMAA 1x +техники из MSAA. Время обработки занимает 2,04 мс.
  • SMAA 4x   : SMAA 1x +техники из SSAA/MSAA  и TSAA/TMSAA. Время обработки занимает 2,34 мс.

 

CMAA (Conservative Morphological Anti-Aliasing, Консервативное морфологическое сглаживание) — среднее между FXAA и SMAA 1x. Идеально подходит для слабых и средних графических процессоров. Отличие от FXAA происходит за счет обработки линий краев длиной до 64 пикселей. Используется алгоритм, с обрабатыванием только симметричных разрывов цветов, чтобы избежать ненужного размытия. Отличие от SMAA 1x происходит за счет менее полного сглаживания объектов, т.к. обрабатывается меньше типов фигур и обладает повышенной временной стабильностью, т.е меньше мерцаний объектов.

MFAA (Multi-Frame Sampled Anti-Aliasing, Мультикадровое сглаживание) — производится выборка двух сэмплов для каждого пикселя из текущего кадра и двух сэмплов из предыдущих, после чего применяетя фильтр.  MFAA, по сути, соответствует 2xMSAA по нагрузке на видеокарту, но даёт качество картинки на уровне 4xMSAA. При этом этот метод работает примерно на 30 процентов быстрее. Падение производительности из-за фильтра минимальное. Для MFAA необходим определенный уровень частоты кадров, чтобы сглаживание можно было рассчитывать на основе двух кадров. NVIDIA утверждает, что частоты кадров 30-40 fps должно быть достаточно.
GPAA (Geometric Post-process Anti-Aliasing, Сглаживание с геометрической постобработкой) — в работе техники заложено  копирование буфера с отрендеренными данными и повторной обработки ребер.

GBAA (Geometry Buffer Anti-Aliasing, Сглаживание с буфером геометрии) — усовершенствованный GPAA, в котором границы обрабатываются несколько иначе. За счет чего улучшена производительность.


Остальные методы

За бортом остались менее известные способы, относящиеся и к первому и второму типу. Ссылки на них приводятся в ознакомительных целях.

    • DAEAA (Directionally Adaptive Edge Anti-Aliasing)
    • DEAA (Distance-to-edge Anti-Aliasing)
    • DLAA (Directionally Localized Anti-Aliasing)
    • AAA (Amortized Supersampling Anti-Aliasing)
    • TRAA (Temporal Reprojection Anti-Aliasing)
    • HQTSSAA (High Quality Temporal Supersampling Anti-Aliasing)
    • DCAA (Decoupled Coverage Anti-Aliasing)
    • TGAA (Triangle-based Geometry Anti-Aliasing)
    • SBAA (Surface Based Anti-Aliasing)
    • NFAA (Normal Filter Anti-Aliasing)
    • SDAA (Second Depth Anti-Aliasing)
    • PWAA (Phone-Wire Anti-Aliasing)
    • SSSAA (Selective Supersampling Anti-Aliasing)

Как видите, техник сглаживаний в играх  и их разновидностей очень много. Каждая из них, это поиск баланса между производительностью и качеством графики. За все время так и не было создано одного волшебного и универсального метода, удовлетворяющего обоим условиям сразу. И вероятно, в не таком далеком будущем, все они останутся в прошлом, по мере наращивания мощностей видеокарт и поддержки более высокого разрешения.
Но этого еще нужно дождаться.

Подробности
Опубликовано: 02.02.2018 г.

soft-tuning.ru

Краткий обзор по сглаживанию в играх

Ни для кого не секрет, что в большинстве современных игр уровня ААА много настроек графики. Но далеко не все знают, какой параметр за что отвечает, какой уровень установить лучше всего и сколько он может отнять ресурсов у ПК. Сегодня мы поговорим о сглаживании.

Что такое сглаживание? Наиболее простой ответ дает Википедия.
Сглаживание (anti-aliasing, AA, антиалязинг, антиалайзинг и тд) — технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских, или объёмных изображений. Сглаживание было придумано в 1972 в Массачусетском технологическом институте в Architecture Machine Group.
Что бы вам не пришлось много читать, сразу приведу основные варианты сглаживаний. Точно так же они обычно обозначаются и в играх.
SSAA, MSAA, CSAA, NFAA, FXAA, DLAA, MLAA, SMAA, TXAA.

Начну с самого крутого, правильного качественного и самого «жрущего» сглаживания – SSAA или по-другому — Super-Sampling. Простой пример потребляемых ресурсов этим методом сглаживания: для разрешения 1280×1024 с SSAA 4x необходим экранный буфер такого же размера, как при разрешении 2560×2048 без SSAA. Размытие картинки – НЕТ. Еще этот метод сглаживания называют FSAA. Рекомендую применять владельцам только самых топовых ПК (видеокарт).

MSAA – улучшенный вариант суперсемплинга (SSAA). Практически такой же по качеству, но требующий меньшее количество ресурсов видеокарты, по сравнению с SSAA. Размытие картинки – очень незначительное, практически не уловимое. И хотя этот метод сглаживания требует меньше ресурсов, чем его первый собрат, этот вариант АА так же рекомендуется владельцам топовых видеокарт.

CSAA – разработка NVIDIA. Усовершенствованный (немного) MSAA. Качество картинки примерно на уровне MSAA 8x, но по ресурсам ест как MSAA 4x. Размытие картинки – незначительное, практически не уловимое. Из последних игр, в которых его использовал – Star Wars Battlefront (DICE).

FXAA – известен своим низким требованиям к видеосистеме. Сглаживает вполне прилично, я бы сказал хорошо. Но есть один недостаток, который заметен, скажем, при сравнении с MSAA – «замыливание» картинки. Оно больше, чем среднее. Подойдет для тех, кто не терпит лесенки, но не может себе позволить предыдущие алгоритмы сглаживания.

MLAA – малоизвестный алгоритм сглаживания. Единственный алгоритм, который работает за счет процессора, а не видеокарты. Он не зависит от сложности сцены, так что можно гарантировать отсутствие «подтормаживаний» в любой момент. Intel позиционирует MLAA как конкурента MSAA. Если судить объективно, MSAA работает немного медленней, но и качественней. По сравнению MLAA с FXAA первый будет медленнее, но при этом качество картинки – без заметного «замыливания».

SMAA – смесь FXAA и MLAA. По скорости находится между FXAA и MSAA. По качеству – картинку практически не блюрит.

TXAA – новый алгоритм сглаживания. Сочетает преимущества MSAA и FXAA. Разработка NVIDIA. Сглаживает ОЧЕНЬ качественно. TXAA 4x = MSAA 8x. Хотя порой первый даже лучше. НО. TXAA «мылит» картинку. «Блюрит» ее. И если сравнивать с MSAA – последний выглядит лучше.

Итог: чОткий, но самый древний алгоритм сглаживания – SSAA. MSAA – очень хороший по качеству, но ест заметно много ресурсов. CSAA – практически такой же по качеству, но ресурсов ест меньше. FXAA – если видеокарта не позволяет, но «сглаживать» хочется, то этот вариант для вас. MLAA – на него можете забить. SMAA – нормальный вариант, можете его опробовать. TXAA – сглаживает очень хорошо. Очень. Но блюр очень раздражает. Поэтому могу рекомендовать этот алгоритм, если вам плевать на «замыливание».

Кстати. В разрешении 4k сглаживание порой вовсе не требуется. Либо можно применить самое простое CSAA или MSAA 2x. Не более. Интересно, как сложится картина лет через 5-7, когда 4k разрешение приобретет массовость. Я специально не стал приводить примеры комбинирования разных методов сглаживания, что бы не вызвать у вас путаницы. Достаточно этих алгоритмов, что бы вы могли определиться, какое сглаживание подходит для вашей системы и для вашего восприятия.

Автор: Delta_Massimo

greentechreviews.ru

Сглаживание — Википедия

Материал из Википедии — свободной энциклопедии

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 20 декабря 2015; проверки требуют 29 правок. Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 20 декабря 2015; проверки требуют 29 правок.

Пример сглаживания — изображение слева не сглажено, к изображению справа применено сглаживание 4x

Сгла́живание (англ. anti-aliasing) — технология, используемая для устранения эффекта «зубчатости», возникающего на краях одновременно выводимого на экран множества отдельных друг от друга плоских или объёмных изображений. Сглаживание было придумано в 1972 году в Массачусетском технологическом институте в Architecture Machine Group, которая позже стала основной частью Media Lab.

Буква а с ClearType-сглаживанием (слева) и без сглаживания (справа) на TFT-мониторе

Основной принцип сглаживания — использование возможностей устройства вывода для показа оттенков цвета, которым нарисована кривая. В этом случае пиксели, соседние с граничным пикселем изображения, принимают промежуточное значение между цветом изображения и цветом фона, создавая градиент и размывая границу.

Применяется два варианта сглаживания:

  • Общее сглаживание отрисовкой излишне крупного несглаженного изображения с последующим уменьшением разрешения.
  • Специализированные алгоритмы сглаживания, работающие на изображениях определённого типа (например, Алгоритм Ву для отрисовки отрезков).

Следует заметить, что сглаживание зависит от гаммы монитора. В частности, среднее между 0,2 и 0,8 — это не обязательно 0,5, а (0,2γ+0,8γ2)1/γ{\displaystyle \left({\frac {0{,}2^{\gamma }+0{,}8^{\gamma }}{2}}\right)^{1/\gamma }}. Особенно это заметно на тонких узорах и тексте. Поэтому сглаживание наилучшего качества получается только тогда, когда γ{\displaystyle \gamma } известна.

SSAA[править | править код]

Избыточная выборка сглаживания (англ. Supersample anti-aliasing, SSAA)[1], также называемое полносценным или полноэкранным сглаживанием (FSAA)[2], используется для исправления алиасинга (или «зубцов») на полноэкранных изображениях[3]. SSAA было доступно на ранних видеокартах, вплоть до DirectX 7. Начиная с DirectX 8 из-за огромной вычислительной сложности было заменено всеми производителями графических процессоров на множественную выборку сглаживания, который также был заменён другими методами, такими как CSAA + TrAA/AAA. MSAA даёт несколько худшее качество графики, но и обеспечивает огромную экономию вычислительной мощности. Поскольку SSAA даёт более высокое качество изображения, он не был полностью исключён и до сих пор реализуется аппаратно в продуктах AMD и NVIDIA. В модельный ряд AMD HD6xxx он включён в качестве особенности (только для игр на DirectX 9), также он был включён в драйвера NVIDIA Fermi, для всех игр, начиная с игр на DirectX 9, и заканчивая играми на DirectX 11 с использованием любых видеокарт NVIDIA с поддержкой DirectX 10 и выше.

В результате изображение с SSAA выглядит более мягко и реалистично. Однако у фотографических изображений с простым сглаживанием (например, суперсэмплинг, а затем усреднение) может ухудшиться внешний вид некоторых типов линейных рисунков или диаграмм (изображение будет выглядеть размыто), особенно там, где линии наиболее горизонтальны или вертикальны. В этих случаях может быть использован хинтинг.

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

Качество сглаживания ограничено пропускной способностью видеопамяти, поэтому GPU с быстрой памятью сможет просчитать полноэкранное сглаживание с меньшим ущербом для производительности, чем GPU более низкого класса. Сглаживание можно включать в различных режимах. Например, сглаживание 4x даст более качественное изображение, чем сглаживание 2x, но значительно снизит производительность. Сглаживание 2xSSAA удваивает разрешение, тогда как 4xSSAA его учетверяет[4].

FXAA[править | править код]

FXAA (Fast approXimate Anti-Aliasing) — метод сглаживания от Nvidia[5], представляющий собой однопроходный пиксельный шейдер, который обсчитывает результирующий кадр на этапе постобработки. Является более производительным решением, по сравнению с традиционным MSAA (Multi-Sampling Anti-Aliasing), что, однако, сказывается на точности работы и качестве изображения.

MFAA[править | править код]

MFAA (Multiframe Sampled Anti-Aliasing) — метод сглаживания от Nvidia. Целью MFAA является достижение равноценного сглаживания при более высокой частоте кадров. В идеале MFAA 4х по производительности должен соответствовать MSAA 2х, но обеспечить качество, как у MSAA 4x, или выше.[6]

ru.wikipedia.org

улучшенное субпиксельное морфологическое сглаживание / Habr


Данная статья основана на журнале Хорхе Хименеса, Хосе Эчеварриа, Тиаго Соуса и Диего Гутьерреса.

Их демо реализации SMAA можно посмотреть здесь (файл .exe). На моём GTX 960 2GB оно работает вполне нормально.

Старые способы сглаживания (антиалиасинга)


Долгие годы стандартами для реализации сглаживания были методы MSAA (Multisampling Antialiasing) и SSAA (Supersampling Antialiasing). На самом деле, они и по-прежнему обеспечивают наивысшее качество среди всех современных методов сглаживания. Как мы знаем, алиасинг возникает из-за нехватки сэмплов, как на пространственном (ломаные линии), так и на временном уровне (мерцание), обычно рядом с гранями и областями изображения с высоким/низким контрастом. Для борьбы с ним у нас имеются два способа, которые когда-то были единственными решениями: Supersampling и Multisampling. При суперсэмплинге мы увеличиваем изображение, а затем снижаем его дискретизацию до нужного разрешения. Этот принцип отлично работает, потому что распространяется на все аспекты проблемы. При мультисемплинге используется похожее решение. В этом методе каждый сэмпл дублируется на основание определённого коэффициента. При современных больших разрешениях для этого требуются достаточно мощные графические карты. Поэтому нам нужны новые методы сглаживания, как на пространственном, так и на временном уровнях. Все эти методы используют в своей работе один алгоритм — распознавание краёв. Но они выполняют и другие операции.

Современные способы сглаживания


Существует множество современных основанных на фильтрации методов, которые хорошо справляются со своей работой, несмотря на то, что уступают двум перечисленным выше. FXAA, DEAA, GPAA, GBAA, CSAA, EQAA, DLAA… В этой статье мы поговорим о SMAA, и о его предшественнике — MLAA. Эти современные основанные на фильтрации методы имеют собственные проблемы:
  • Большинство алгоритмов распознавания краёв, которые лежат в основе этих методов, учитывают только численные различия между пикселями и игнорируют то, как они отображаются зрителю.
  • Исходная форма объекта не всегда сохраняется, общее скругление углов почти всегда чётко заметно на текстах, резких углах и субпиксельных элементах.
  • Большинство решений рассчитано на обработку только горизонтальных или вертикальных паттернов, и игнорирует диагонали.
  • Реальные субпиксельные элементы и субпиксельное движение обрабатывается неверно. Алиасинг отражений (specular) и затенения (shading) устраняются не полностью.

Как можно догадаться, мы подняли эти проблемы потому, что хотим их устранить.

Морфологическое сглаживание (Morphological Antialiasing, MLAA)


MLAA пытается оценить покрытие исходной геометрии. Для точной растеризации сглаженного треугольника необходимо вычислить площадь покрытия каждого пикселя внутри треугольника, чтобы правильным образом смешать его с фоном. MLAA начинает с изображения без сглаживания, а затем обращает процесс вспять, векторизируя силуэты, чтобы вычислить покрываемые ими площади. Поскольку фон после растеризации узнать нельзя, MLAA затем смешивает его с соседом, предполагая, что его значение близко к значению исходного фона. Другими словами, алгоритм распознаёт границы (с помощью информации о цвете или глубине), а затем обнаруживает в них конкретные паттерны. Сглаживание обеспечивается интеллектуальным смешиванием пикселей в границах. MLAA имеет реализации на DirectX 10 и Mono Game (XNA). Он честно реализован в таких играх, как Fable II. Создатели MLAA позже создали SMAA, или Enhanced Subpixel Morphological Antialiasing (усовершенствованное субпиксельное морфологическое сглаживание), которое является основной темой данной статьи.
MLAA в действии

Enhanced Subpixel Morphological Antialiasing (SMAA)



Сравнение SMAA и других методов в Crysis 2

SMAA обеспечивает надёжное распознавание краёв, а также простой и эффективный способ обработки острых геометрических элементов и диагональных линий. Кроме того, SMAA не изменяет форму геометрии, как это делают многие другие методы.


Вверху — AA нет; в середине — MLAA; внизу — SMAA

SMAA построен на конвейере MLAA, и улучшает или переосмысливает каждый его этап. В частности, распознавание краёв улучшено благодаря использованию информации о цвете вместе с адаптацией локального контраста для создания более чётких краёв. Метод расширяет количество паттернов, используемых для сохранения резких геометрических элементов и диагоналей. Наконец, он показывает, как морфологическое сглаживание можно точно скомбинировать с мультисемплингом или суперсемплингом и временной репроекцией.

Распознавание краёв


Распознавание краёв — важнейший этап, потому что нераспознанные края остаются искажёнными. С другой стороны, слишком большое количество краёв с фильтрацией снижает качество сглаженного изображения. Для распознавания края может использоваться различная информация: цветность, яркость, глубина, нормаль поверхности и их сочетание. SMAA по четырём причинам использует яркость (luma):
  1. Меньше артефактов.
  2. Яркость всегда видима.
  3. Она может справляться с искажениями затенения.
  4. И, наконец, она быстрее, чем цветность (chroma).


Слева и в центре: другие методы распознавания краёв, приводящие к появлению красных пересечений и артефактов; справа: совершенно чёткие края SMAA

Запомните это изображение. Вот как работает распознавание краёв: окончательное вычисленное значение — это булево значение, называемое граница левого края. Аналогичным образом вычисляются булевы значения для верхнего края. Формула:


Все значения c называются дельтами контраста.

Обработка паттернов


Распознавание паттернов SMAA позволяет сохранять резкие геометрические элементы, например, углы, обрабатывает диагонали и обеспечивает точный поиск расстояний.

Острые геометрические элементы: ревекторизация силуэтов в MLAA склонна к скруглению углов. Чтобы избежать этого, SMAA использует наблюдение о том, что пересечение краёв в линиях контуров имеет максимальный размер один пиксель, а для острых углов эта длина скорее всего будет больше. Поэтому SMAA берёт пересекающиеся края длиной в два пикселя, что позволяет выполнять менее агрессивную обработку углов.

Диагональные паттерны: мы добавили совершенно новый способ распознавания диагональных паттернов. Он состоит из двух следующих этапов:

  1. Поиск диагонального расстояния и слева и справа от диагональных линий.
  2. Получение пересекающихся краёв и .
  3. Пользуясь этой входной информацией, мы определяем конкретный диагональный паттерн для доступа к заранее вычисленной текстуре области, получая области и .

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

Точный поиск расстояний: ключом к распознаванию и классификации паттернов является получение точного расстояния края (длины до обоих концов линии). Для ускорения этого процесса MLAA активно применяет аппаратную интерполяцию. Аппаратную билинейную фильтрацию можно использовать для получения и кодирования до четырёх различных значений за одну операцию доступа к памяти. Эта линейная интерполяция двух двоичных значений (то есть билинейная), создающая одно значение с плавающей запятой, описываемое следующей формулой:


Где и — это два двоичных значения (0 или 1), а — значение интерполяции.

Результаты


MLAA работает с одним сэмплом на пиксель. Что приводится к субсемплированию, из-за которого реальные субпиксельные элементы воссоздать невозможно.
Сравнение MLAA с SMAA и отсутствием AA

Однако SMAA работает на субпиксельном уровне. Это приводит к следующему:

  • Локальный контраст
  • Распознавание диагональных паттернов
  • Резкие геометрические элементы
  • Точный поиск

Всё это можно увидеть на изображении ниже, где эти аспекты сравниваются с результатами других методов. На самом деле, SMAA может создавать результаты, близкие к SSAA 16x.
Излишние затраты, создаваемые каждым из этих решений, незначительны. В частности, адаптация локального контраста занимает всего 0,08 мс, распознавание резких геометрических элементов и точные расстояния занимают 0,01 мс, а обработка диагоналей добавляет лишних 0,12 мс. Проще говоря, SMAA довольно быстр, медленнее, чем SSAA и MSAA, но более плодотворен и менее ресурсоёмок.

habr.com

Графические настройки в компьютерных играх — обзор и тесты

На сайте PC Gamer появился интересный разбор графических настроек в компьютерных играх, где подробно рассказано обо всех популярных инструментах, фильтрах и механизмах обработки изображения. Мы перевели его на русский язык, чтобы вы могли сами настраивать свои игры, избавляться от лагов и любоваться красивой графикой.

Итак, сегодня мы с вами разберемся, что означают те или иные графические настройки в компьютерных играх. 

У Nvidia и AMD есть программное обеспечение для автоматической настройки графики согласно техническим характеристикам вашего компьютера. Со своей задачей программы справляются неплохо, но часто ручная настройка приносит куда больше пользы. Все-таки, мы ПК-бояре, у нас должна быть свобода выбора!

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

Начнем с фундаментальных понятий, а затем пройдемся по тонким настройкам в рамках нескольких разделов, посвященных анизотропной фильтрации, сглаживанию и постобработке. Для написания этого гайда мы пользовались информацией, полученной от профессионалов: Алекса Остина, дизайнера и программиста Cryptic Sea, Николаса Вайнинга, технического директора и ведущего программиста Gaslamp Games и от представителей Nvidia. Сразу отметим, что статью мы пишем простыми словами, опуская подробные технические детали, чтобы вам было легче понять механизмы работы разных технологий.

Разрешение 

Пиксель — основная единица цифрового изображения. Это цветовая точка, а разрешение — количество столбцов и рядов точек на вашем мониторе. Самые распространенные разрешения на сегодня: 1280x720 (720p), 1920x1080 (1080p), 2560x1440 (1440p) и 3840 x 2160 (4K или «Ultra-HD»). Но это для дисплеев формата 16:9. Если у вас соотношение сторон 16:10, разрешения будут слегка отличаться: 1920x1200, 2560x1600 и т.д. У ультрашироких мониторов разрешение тоже другое: 2560x1080, 3440x1440 и т.д.

Кадры в секунду (frames per second, FPS)

Если представить, что игра — это анимационный ролик, то FPS будет числом изображений, показанных за секунду. Это не то же самое, что частота обновления дисплея, измеряемая в герцах. Но эти два параметра легко сравнивать, ведь как монитор на 60 Гц обновляется 60 раз за секунду, так и игра при 60 FPS выдает именно столько кадров за тот же отрезок времени.

Чем сильнее вы загрузите видеокарту обработкой красивых, наполненных деталями игровых сцен, тем ниже будет ваш FPS. Если частота кадров окажется низкой, они будут повторяться и получится эффект подтормаживания и подвисания. Киберспортсмены охотятся за максимальном возможными показателями FPS, особенно в шутерах. А обычные пользователи зачастую довольствуются играбельными показателями — это где-то 60 кадров в секунду. Однако, мониторы на 120-144 Гц становятся более доступными, поэтому потребность в FPS тоже растет. Нет смысла играть на 120 герцах, если система тянет всего 60-70 кадров. 

Так как в большинстве игр нет встроенного бенчмарка, для измерения кадров в секунду используется стороннее программное обеспечение, например, ShadowPlay или FRAPS. Однако, некоторые новые игры с DX12 и Vulkan могут некорректно работать с этими программами, чего не наблюдалось со старыми играми на DX11.

Апскейлинг и даунсэмплинг

В некоторых играх есть настройка «разрешение рендеринга» или «rendering resolution» — этот параметр позволяет поддерживать постоянное разрешение экрана, при этом настраивая разрешение, при котором воспроизводится игра. Если разрешение рендеринга игры ниже разрешения экрана, оно будет увеличено до масштабов разрешения экрана (апскейлинг). При этом картинка получится ужасной, ведь она растянется в несколько раз. С другой стороны, если визуализировать игру с большим разрешением экрана (такая опция есть, например, в Shadow of Mordor), она будет выглядеть намного лучше, но производительность станет заметно ниже (даунсэмплинг). 

Апскейл и даунскейл

Производительность

На производительность больше всего влияет разрешение, поскольку оно определяет количество обрабатываемых графическим процессором пикселей. Вот почему консольные игры с разрешением 1080p, часто используют апскейлинг, чтобы воспроизводить крутые спецэффекты, сохраняя плавную частоту кадров. 

Мы использовали наш Large Pixel Collider (суперкомпьютер от сайта PC Gamer), включив две из четырех доступных видеокарт GTX Titan, чтобы продемонстрировать, как сильно разрешение влияет на производительность.

Тесты проводились в бенчмарке Shadow of Mordor:

Разрешение

Средний FPS

Максимальный FPS

Минимальный FPS

1980х720 (½ родного разрешения)

102

338

30

2560х1440 (родное разрешение)

51

189

23

5120х2880 (x2 родного разрешения)

16

26

10

Вертикальная синхронизация и разрывы кадров

Когда цикл обновления дисплея не синхронизирован с циклом рендеринга игры, экран может обновляться в процессе переключения между готовыми кадрами. Получается эффект разрыва кадров, когда мы видим части двух или более кадров одновременно. 

Неприятные разрывы кадров

Одним из решений этой проблемы стала вертикальная синхронизация, которая почти всегда присутствует в настройках графики. Она не позволяет игре показывать кадр, пока дисплей не завершит цикл обновления. Это вызывает другую проблему — задержка вывода кадров, когда игра способна показать большее количество FPS, но ограничена герцовкой монитора (например, вы могли бы иметь 80 или даже 100 кадров, но монитор позволит показывать только 60). 

Адаптивная вертикальная синхронизация

Бывает и так, что частота кадров игры падает ниже частоты обновления монитора. Если частота кадров игры превышена, вертикальная синхронизация привязывает ее к частоте обновления монитора и она, например, на дисплее с 60 Гц не превысит 60 кадров. А вот когда частота кадров падает ниже частоты обновления монитора, вертикальная синхронизация привязывает ее к другому синхронизированному значению, например, 30 FPS. Если частота кадров постоянно колеблется выше и ниже частоты обновления, появляются подтормаживания. 

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

Технологии G-sync и FreeSync

Новые технологии помогают разобраться со многими проблемами, которые зачастую основаны на том, что у дисплеев фиксированная частота обновления. Но если частоту дисплея можно было бы изменять в зависимости от FPS, пропали бы разрывы кадров и подтормаживания. Такие технологии уже есть, но для них нужны совместимые видеокарта и дисплей. У Nvidia есть технология G-sync, а у AMD — FreeSync. Если ваш монитор поддерживает одну из них и она подходит к установленной видеокарте, проблемы решены.

Сглаживание (Anti-aliasing, антиалиасинг)

Если провести диагональную линию квадратными пикселями, их четкие края создадут «эффект лестницы». Получается некрасиво, и разработчики называют такую ситуацию алиасингом. Если бы разрешения у мониторов были намного выше, проблема казалась бы мизерной. Но пока новые технологии отображения не появились или стоят слишком дорого, приходится компенсировать «лестницу» сглаживанием.

Инструментов для этого достаточно, но легче объяснить на примере суперсэмплинга (SSAA). Эта технология отрисовывает кадры с более высоким разрешением, чем у экрана, а затем сжимает их обратно до его размера. На предыдущей странице вы могли видеть эффект от сглаживания при уменьшении частоты в Shadow of Mordor с 5120х2880 до 1440p

Наглядное сглаживание

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

Такова суть технологии. Но, она требует от системы очень много ресурсов. Ей приходится отрисовывать каждый кадр с разрешением в два или более раз больше, чем оригинальное разрешение экрана. Даже в случае с нашими топовыми видеокартами суперсэмплинг с разрешением 2560х1440 кажется нецелесообразным. К счастью, есть альтернативы:

Мультисэмплинг (MSAA): Эффективнее суперсэмплинга, но все еще прожорлив. В старых играх он был стандартом, а его суть объясняется в видео, которое вы увидите ниже.

Усовершенствованный мультисэмплинг (CSAA): более эффективная версия MSAA от Nvidia для ее видеокарт.

Усовершенствованный мультисэмплинг (CFAA): тоже апгрейд MSAA, только от компании AMD для ее карточек. 

Метод быстрого приближения (FXAA): вместо анализа каждого отдельного пикселя, FXAA накладывается в качестве фильтра постобработки на всю сцену целиком после ее рендеринга. FXAA также захватывает места, которые пропускаются при включении MSAA. Хотя сам метод быстрого приближения тоже пропускает много неровностей.

Морфологический метод (MLAA): он свойственен видеокартам AMD и тоже пропускает этап рендеринга. MLAA обрабатывает кадр, выискивая алиасинг и сглаживая его. Как нам объяснил Николас Вайнинг: «Морфологическое сглаживание работает с морфологией (паттернами) неровностей на краях моделей; оно вычисляет оптимальный способ удаления лесенок для каждого вида неровностей путем разбиения краев и зубцов на небольшие наборы морфологических операторов. А затем использует специальные типы смешивания для каждого отдельного набора». Включить MLAA можно в панели управления Catalyst.

Улучшенное субпиксельное морфологическое сглаживание (SMAA): еще один вид постобработки, в котором сочетаются детали MLAA, MSAA и SSAA. Такой метод можно совмещать со SweetFX, а многие современные игры поддерживают его изначально.

Временное сглаживание (TAA или TXAA): TXAA изначально разрабатывалась для графических процессоров Nvidia уровня Kepler и более поздних. Но затем появились не настолько специфические формы временного сглаживания, которые обычно обозначаются, как TAA. При таком способе следующий кадр сравнивается с предыдущим, после чего обнаруживаются и устраняются неровности. Происходит это при поддержке разных фильтров, которые уменьшают «ползающую лесенку» в движении.

Николас Вайнинг объясняет: «Идея TAA заключается в ожидании того, что два идущих друг за другом кадра будут очень похожи, ведь пользователь в игре двигается не настолько быстро. Поэтому раз объекты на экране переместились несильно, мы можем получить данные из предыдущего кадра, чтобы дополнить участки, нуждающиеся в сглаживании».

Многокадровое сглаживание (MFAA): появилось с релизом графических процессоров Maxwell от Nvidia. Тогда как MSAA работает с устойчивыми шаблонами, MFAA позволяет их программировать. Представители Nvidia подробно объясняют технологию в видео ниже (о нем мы уже говорили раньше и очень скоро вы его увидите).

Суперсэмплинг с глубоким обучением (DLSS): новейшая технология Nvidia, доступная лишь в некоторых играх и с видеокартами GeForce RTX. По словам компании: «DLSS использует нейронную сеть для определения многомерных особенностей визуализированной сцены и интеллектуального объединения деталей из нескольких кадров для создания высококачественного финального изображения. DLSS использует меньше сэмплов, чем TAA, при этом избегая алгоритмических трудностей с прозрачностями и другими сложными элементами сцен».

Другими словами, DLSS справляется с задачей лучше и эффективнее, чем TAA, но технологию нужно отдельно готовить к каждой игре. Если не обучить ее должным образом, многие места окажутся размытыми.

Что означают цифры?

В настройках сглаживания вы часто видите значения: 2x, 4x, 8x и т.д. Эти цифры рассказывают о количестве используемых образцов цвета и, как правило, чем больше число, тем точнее будет сглаживание (при этом оно потребует больше системных ресурсов).

Но есть исключения. Так, CSAA пытается достичь сглаживания на уровне MSAA с меньшим количеством образцов цвета. Поэтому 8xCSAA фактически использует только четыре образца цвета. Есть и 8QxCSAA — этот способ сглаживания увеличивает количество образцов цвета до восьми, чтобы повысить точность.

Еще пример сглаживания

Производительность

Мы использовали бенчмарк Batman: Arkham City, чтобы протестировать несколько старых методов сглаживания: MSAA, FXAA и TXAA. Результаты, как и ожидалось, показывают, что FXAA требует меньше всего ресурсов, в то время как MSAA и TXAA сильно влияют на среднюю частоту кадров. 

Результаты тестирования сглаживания в Batman: Arkham City (на двух Nvidia GTX Titan SLI):

 

Средний FPS

Максимальный FPS

Минимальный FPS

Без сглаживания

161

224

57

MSAA 8x

84

166

44

FXAA (высоко)

154

204

60

TXAA (высоко)

98

118

67

Какой метод сглаживания использовать?

Зависит от вашей видеокарты и личных предпочтений касательно производительности и визуального качества. Однако, если частота кадров не проблема, выбор очевиден: FXAA эффективнее всего. Если же у вас видеокарта RTX и ваша игра поддерживает DLSS — пробуйте, ведь не зря же вы заплатили за новую и очень эффективную технологию. В старых играх придется покрутить настройки туда-сюда, чтобы подобрать идеальную комбинацию производительности и привлекательного внешнего вида. Если ваша система достаточно мощная, можете протестировать суперсэмплинг вместо встроенных в игры опций.

Гладковыбритый сглаженный Бэтмен

Переопределение настроек сглаживания

Теоретически, графические настройки в играх не должны иметь значения. Вы можете просто открыть панель управления Nvidia и AMD и изменить там все на свое усмотрение. К сожалению, на деле все работает иначе. Несмотря на то, что вы можете переопределить настройки для любой игры, положительный результат не гарантирован. 

Николас Вайнинг объясняет: «Очень часто переопределение настроек не работает из-за отложенного рендеринга, нарушающего работу многих распространенных методов сглаживания». Алекс Остин из Cryptic Sea тоже отметил, что некоторые методы сглаживания не работают с настройками панелей видеокарт. Так что, нужно тестировать. Попробуйте отключить сглаживание в игре и установите его в панели управления, потом зайдите обратно в игру и проверьте результат.

Мы заметили, что MLAA от AMD работает лучше из панели управления. Но важно отметить, что это фильтр пост-обработки, который применяется ко всем объектам сцены. Поэтому он может исправить неровные края текстур, но при этом захватить и кое-что лишнее. Пример тому, меню в BioShock Infinite, буквы которого стали слегка сглаженными.

Меню слегка «пострадало»

Суперсэмплинг с использованием технологии динамического суперразрешения (DSR) от Nvidia или технологии виртуального сверхвысокого разрешения от AMD более надежен. У Nvidia DSR включается в разделе «Управление настройками 3D», где его можно выставить вплоть до 4x. А виртуальное сверхвысокое разрешение у AMD включается во вкладке «Дисплей». Активировав любую из этих настроек, вы запустите игру в более высоком разрешении, которое будет уменьшено до размеров разрешения экрана. Получится красиво, но ресурсозатратно. Кроме того, могут появиться проблемы с интерфейсом в некоторых играх или технология вообще не захочет работать.

Билинейная и трилинейная фильтрация

Фильтрация текстур следит за тем, как двухмерные картинки накладываются на трехмерную модель. Пиксель на трехмерной модели не обязательно будет соответствовать пискелю на текстуре (кстати, на трехмерных моделях пиксели называются текселями). Ведь вы наблюдаете за моделью на разных расстояниях и под разными углами. Поэтому, когда нужно узнать цвет пикселя, фильтрация находит точку на соответствующей текстуре, берет несколько сэмплов из близлежащих текселей и усредняет их. Простейший метод фильтрации — билинейная фильтрация, которая выбирает четыре ближайших текселя, чтобы найти цвет нужного пикселя.

Мир распадается на части

Появилось MIP-текстурирование и вместе с ним возникла новая проблема. Допустим, вы стоите на поверхности из треснувшего бетона. Если посмотрите прямо вниз, увидите большую, детальную бетонную текстуру. Но когда посмотрите вдаль, где дорога уходит в горизонт, вы увидите лишь пару пикселей, и особая детализация там не нужна. Поэтому, чтобы повысить производительность без потери качества, игра подгрузит текстуру более низкого разрешения, именуемую MIP-текстурой.

Так вот, когда мы рассматриваем нашу дорогу, не особенно хочется видеть, где одно MIP-изображение заканчивается, а другое начинается, потому что их качество различается и переход будет резать глаз. Билинейная фильтрация не интерполирует (не сглаживает) переходы, поэтому с этим типом фильтрации они заметны. Проблема решается при помощи трилинейной фильтрации, сглаживающей переход между MIP-текстурами, используя сэмплы каждой из них.

Анизотропная фильтрация

Трилинейная фильтрация работает, но текстуры все еще кажутся размытыми. Вот для чего была изобретена анизотропная фильтрация, которая значительно улучшает качество текстур при взгляде под углом.

Анизотропная фильтрация доминирует

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

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

Концептуально эту технологию не так просто понять. Если после нашего объяснения у вас все еще остались вопросы, лучше взгляните на объяснение самой Nvidia, где указана более подробная информация по теме (на английском языке).

А здесь что означают цифры?

Анизотропная фильтрация в настройках современных игр встречается не так часто, но там, где она есть, ее можно выставить в рамках от 2х до 16х. Nvidia объясняет, что эти цифры относятся к крутизне угла, к которому будет применена фильтрация:

«Анизотропная фильтрация функционирует с уровнями анизотропии между 1 и 16, определяя максимальную степень, с которой может масштабироваться MIP-текстура. Но она обычно предлагается пользователю в двухкратном увеличении: 2х, 4х, 8х и 16х. Разница между этими настройками в максимальном угле, под которым фильтрация будет работать с текстурой. Например, 4х будет фильтровать текстуры под углами вдвое более крутыми, чем 2х, но при этом начнет применять 2х фильтрацию для текстур, угол которых находится в диапазоне 2х, для оптимизации производительности. Это позволит снизить нагрузку на систему даже при максимальных настройках анизотропной фильтрации».

Производительность

Анизотропная фильтрация не так сильно влияет на производительность, как сглаживание, поэтому в наши дни ее редко добавляют в меню настроек (она включена по умолчанию). Используя бенчмарк BioShock Infinite, мы заметили снижение среднего FPS на всего 6 кадров в сравнении между билинейной и анизотропной фильтрациями. Это мизерная разница, учитывая значительное улучшение качества картинки. Ведь высокое качество текстур не имеет смысла при плохой фильтрации.

Еще пример победы анизотропной фильтрации над другими методами

Настройки качества графики

Настройки качества во многом зависят от самой игры. В целом, они повышают и понижают сложность игровых эффектов и ассетов (ресурсов, цифровых объектов). Переход от низких настроек до высоких может повлиять на кучу переменных. Например, увеличивая качество теней, вы можете увеличить их разрешение, включить мягкие тени или изменить расстояние, на которых тени будут видны. Вы не узнаете, что конкретно сделали, но в некоторых случаях изменения существенно улучшат производительность.

Уменьшение и увеличение качества текстур значительно влияет на производительность и визуальное качество. В бенчмарке BioShock Infinite мы выставили все настройки на максимум и меняли лишь качество текстур. Вот результаты (при использовании двух Nvidia GTX Titan SLI):

Качество текстур

Средний FPS

Максимальный FPS

Минимальный FPS

Низкие настройки

103

295

30

Средние настройки

101

180

20

Высокие настройки

92

178

15

Заметили скачок между низкими и высокими настройками? Больше десяти кадров в секунду. Кажется, что это не так много. Но на других системах разница может быть куда больше, ведь наш тестовый стенд достаточно мощный. Не существует быстрого способа определить идеальные настройки качества графики для вашей системы. Это тот случай, когда нужно тестировать ручками. Рекомендуем сначала опробовать советы ПО от Nvidia и AMD, а затем повысить качество текстур, освещения и теней, проверяя средний FPS.

Глобальное затенение (Ambient occlusion)

Глобальное освещение равномерно распределяется по каждому объекту сцены. Например, солнечным днем, когда даже в тени рассеивается определенное количество света. Для придания глубины сцене технология объединяется с направленным освещением, ведь без этого картинка получается плоской.

Интимное затенение

Глобальное затенение пытается улучшить этот эффект, определяя, какие части сцены должны освещаться сильнее или меньше. Оно не отбрасывает жесткие тени, как источник направленного света, а скорее затемняет общий интерьер и щели, добавляя мягкое затенение.

SSAO (преграждение окружающего света в экранном пространстве)

Почти то же самое, что и глобальное затенение (ambient occlusion), используемое при рендеринге в реальном времени. За последние годы эта технология стала обычным явлением в играх, а впервые ее можно было увидеть в Crysis. Иногда технология выглядит глуповато, словно окружающие предметы «сияют» темнотой. В других случаях она идеально добавляет сцене глубину. Все основные движки поддерживают SSAO, а реализация технологии зависит от игры и ее разработчиков.

Есть также улучшенные вариации SSAO в виде HBAO+ и HDAO.

Технология HDRR (High dynamic range rendering — высокодинамичный диапазон рендеринга)

HDR был в моде среди фотографов несколько лет назад. Диапазон здесь относится к яркости изображения и определяет насколько темным или ярким оно может быть. Цель технологии в том, чтобы самые темные области сцены были такими же подробными и различимыми, как и яркие. Изображение с низким динамическим диапазоном хорошо различимо в светлых участках, а в тени вся детализация теряется, или наоборот.

HDR рулит

В прошлом диапазон темного и светлого в играх был ограничен восемью битами (256 значений). Но с появлением DirectX 10 стал возможен 128-битный HDRR. Хотя, технология все еще ограничена контрастностью дисплеев. Не существует стандартизированного метода измерения контрастности, но LED-мониторы зачастую выдают контрастность 1000:1.

Bloom-эффект

Печально известный своей излишней популярностью у игровых разработчиков, bloom-эффект пытается имитировать то, как яркий свет распространяется по краям моделей, делая источники света ярче, чем они есть на самом деле. Это работает, но зачастую bloom реализуют настолько криво, что обычные настольные лампы светятся сильнее ядерного взрыва. К счастью, в большинстве игр его можно отключить.

Ниже можете взглянуть на скриншот из игры Syndicate — ярчайший (в прямом смысле) пример кривой реализации bloom-эффекта.

Кто это там сверхновую на улице взорвал? :)

Размытие (motion blur)

Все очень просто — это фильтр, имитирующий резкое движение кадра, словно в фильме. Многие геймеры предпочитают его отключать. И не только потому, что он влияет на производительность, но и из соображений комфорта. Размытие иногда красиво выглядит, например, в гоночных играх (если оно правильно реализовано). Но обычно мы его выключаем.

Глубина резкости (Depth of field, DOF)

Для фотографов глубина резкости означает расстояние между ближайшей и самой удаленной точками, которые появляются в фокусе. Например, если мы снимаем портрет с небольшим DOF, лицо человека будет резким, а волосы сзади начнут расплываться и задний план окажется полностью размытым. С другой стороны, если DOF окажется слишком большим, нос человека будет детализирован на том же уровне, что и все объекты позади него — не слишком красиво. 

Симулятор близорукости

В играх DOF обычно относится только к эффекту размытия на заднем плане. Как и motion blur, фильтр делает вид, что наши «глаза» в игре — это камеры, и создает качество изображения, похожее на фильм. В зависимости от реализации, DOF может значительно повлиять на производительность, особенно, если у вас средняя или слабая система.

Заключение

Влияние настроек на качество изображения будет разным в каждой игре. Производительность тоже будет зависеть от разных систем. Наши тесты в бенчмарках субъективны, но они дают представление о том, какие настройки грузят компьютер сильнее или слабее.

По материалам сайта PC Gamer

rbkgames.com

FXAA — новый алгоритм сглаживания от NVIDIA / Habr

Здравствуйте.

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

Подавляющее большинство игроков знают о «лесенках» на краях объектов и возможном решении этой проблемы — «anti-aliasing», или «сглаживание». Очень подробно этот вопрос описан в статье Дона Волигроски (Don Woligroski) Anti-Aliasing Analysis, Part 1: Settings And Surprises (русский перевод). Также неплохое сравнение с примерами игр текущего поколения игровых консолей есть у Digital Foundry — The Anti-Aliasing Effect (англ.). Вкратце, всё сводится к одному: сглаживание — это здорово, восприятие картинки сильно вырастает в цене, в современных реалиях игропрома продукты с малым сглаживанием или даже без оного находятся в категории освистанных (в первую очередь — фанатами платформ-конкурентов, но тем не менее), но вот реализация качественного сглаживания оставляет желать лучшего, главным образом — из-за недостаточной вычислительной мощности целевого оборудования. В данном случае в гораздо более выгодных условиях оказываются, конечно же, апологеты игры на ПК, т.к. на мощность их железа оказывает влияние только материальный фактор, зато консольщики не упускают случая позубоскалить над ПКшниками на предмет «PC HAZ NO GAEMZ!», мол, игр у вас нет, играете в графику. Я специально не буду затрагивать этот вопрос, потому что рационально-объективных доводов в пользу субъективного ощущения «тёплого лампового гейминга» быть не может в принципе, это вопрос личного выбора со всеми вытекающими. Уже существующие и использующиеся алгоритмы описаны по вышеуказанным ссылкам, поэтому перейду непосредственно к теме: что такое FXAA, с чем его едят и насколько это вкусно.

Начнём с теории. Если быть предельно точным, то FXAA — не такой уж новый алгоритм: впервые он был использован в MMORPG Age of Conan и уже отметился в шутере F.3.A.R., но я буду рассматривать его, как новый, благодаря интересному решению, которое попалось мне на глаза на часто посещаемом форуме (спасибо h0w1er). FXAAFast approXimate Anti-Aliasing, это более производительное решение по-сравнению с традиционным MSAA (Multi-Sampling Anti-Aliasing). Это однопроходный пиксельный шейдер, который обсчитывает результирующий кадр на этапе постобработки. Он создан быть более быстрым и менее требовательным к памяти по-сравнению с MSAA, «оплачивая» свои «плюсы» точностью работы и качеством, хотя на самом деле всё не так страшно, как это звучит. FXAA также имеет ряд преимуществ, включая улучшенное сглаживания спекуляров и субпикселей (речь о поверхностях размером меньше одного пикселя, «лесенки» заставляют такие объекты мерцать). В официальном документе (PDF) создатель FXAA Тимоти Лоттс (Timothy Lottes) заявляет, что для алгоритма FXAA с настройками среднего качества («золотая середина» между качеством и производительностью) постобработка кадра разрешением 1920x1200 на GTX 480 занимает меньше миллисекунды. Основные преимущества FXAA, со слов Тимоти, заключаются в алгоритме сглаживания субпикселей FXAA, работающем лучше оного в MLAA, достаточность для работы железа уровня DX9, постообработке кадра за один проход и, по-моему, самое интересное — независимость от используемого GPU Compute API. Но есть и одна неприятность — необходимость для разработчиков встраивать эту технологию сглаживания в свои игры, когда как традиционные методы сглаживания работают (или не работают) на уровне драйверов. Другими словами, пока программисты не используют в своих движках код FXAA для сглаживания, нужного эффекта мы не получим, влючить FXAA извне официально было нельзя. До недавних пор.

31 июля в ветке Alles rund um FXAA (Treibereinstellungen, Shader-replacements) форума 3DCenter Forum, появился «some dude», который произвёл инъекцию кода FXAA в библиотеку d3d.dll и дал возможность гибко настраивать результат через конфигурационные файлы, а также включать и выключать FXAA по кнопке Insert и делать скриншоты нажатием Delete [Pause], а [Print Screen] делает скриншот начиная с версии beta 9. Этот набор файлов копируется в директорию с исполняемым файлом DX9-приложения (игры, демки — не важно), а это приложение при запуске «подхватывает» библиотеку с нужной инъекцией. И пошло-поехало: так как Gast (автор инъекции) изначально озаботился сохранением результатов работы в лог, народ стал ему присылать баги, которые Gast, в свою очередь, начал править. Позже в его наборе появилась инъекция для DX10 (dxgi.dll), сейчас рассматривается вариант добавить FXAA в DX11, но у автора нет DX11 железа, поэтому вопрос немного подвис в воздухе, а с версии beta 10 — и DX11 (но не забывайте, что это всё-таки бета инъекции).
UPDATE 19.08.2011
<Здесь раньше была куча ссылок, которые потеряли актуальность>
На 19 августа 2011г актуальная версия — beta 10, зеркала: rapidshare.com, letitbit.net, depositfiles.com, rghost.net. К сожалению (или к счастью, кому как) набор фильтров от pedace с виньетированием, сепией и т.п. для beta 10 пока не объявлен, но наткнулся на пользовательские фильтры к этой версии, зеркала: [1], [2], [3], [4], [5].

А теперь — танцы практика. Практиковаться будет на World of Tank, версия 0.6.6.

Вариант без сглаживания (No AA) показывает явные «эскалаторы», и хоть модели танков достаточно большие и детализированные, артефакты видно совершенно явно, особенно на тонких объектах, о которых дополнительно ниже.

Вариант встроенного сглаживания (Edge AA) пытается смазывать края объектов, но у него это получается довольно посредственно, не говоря уже об уходе картинки в небольшое мыло.

Следующий вариант — FXAA, результат налицо: артефактов по краям нет, однако и мыльности по-сравнению с noAA тоже немного добавилось, хотя с EdgeAA разница почти незаметна.

Ну и вариант FXAA Sharpen. Gast в версии beta 6 добавил фильтр резкости, взятый из MPC-HC, и результат очень достойный: мыло исчезло, текстуры стали выглядеть даже резче, чем в оригинале, а «лесенок», несмотря на этот фильтр, практически не добавилось. Из-за незапланированной авторами резкости текстуры башни чуть-чуть «выбило» (синяя зона), но в игре, могу вас уверить, это абсолютно незаметно.

А что же с производительностью? Да практически ничего плохого. К сожалению, движок WoT живёт в своём мире и всплески/падения производительности могут выскакивать на самом ровном месте. У меня получилось следующее:

Картинка «In battle no AA» — то, о чём я говорил выше: тонкие деревца трещат от артефактов, тогда как на вариант «In battle FXAA Sharpen» картинки гораздо приятнее глазу, за исключением проблем фильтра резкости, который уж слишком тонкие линии сужает в толщину волоса, как, например, навесной прицел артиллерии. А количество кадров в секунду в варианте FXAA даже выше, несмотря на то, что эти два скриншота сделаны с разницей в 1 секунду и танк был неподвижен.

На самом деле при длительном тесте была получена цифра ~10-12% — на столько падает производительность при использовании FXAA, тогда как MSAA 4x, с качеством сглаживания которого и конкурирует FXAA, в довольно часто даёт падение вдвое больше. Если будет интересны сравнения — больше цифр и картинок можно найти в статье NVIDIA's New FXAA Antialiasing Technology сайта [H]ard|OCP, где я почерпнул часть информации, а в завершении своего небольшого обзора соглашусь с Марком Уорнером @ HardOCP: при должной реализации у FXAA большое будущее, особенно на консолях, где ресурсы жёстко ограничены, а имея возможность настроить конфигурацию инъекции по своему вкусу, многие уже сейчас без помощи разработчиков, смогут насладиться красивой картинкой в любимой игре.

UPD. На 10 августа уже появилась более настраиваемая инъекция, так сказать, «сборная солянка» от участников обсуждения: INJ_FXAA_DX9_pedace_v1.rar, зеркала: rapidshare.com, letitbit.net, depositfiles.com, rghost.net, hotfile.com. В сборку включены разные фильтры: насыщение цветом, виньетирование, размытие, сепия и другие. Всё это настраивается через единый файл настроек и самое полезное — настройки меняются «на лету»: Alt+Tab из приложения для редактирования настроек, Alt+Tab обратно — новые настройки работают, перезапуск не требуется. С этим вариантом инъекции я избавился от блеклости при включении фильтра резкости, в настройках полностью отключил USE_TECHNICOLOR, USE_TONEMAP и USE_VIGNETTE. Результат выглядит так:

Налицо более чёткая картинка без «лесенок» и мыла, даже текстуры выглядят веселее.

UPDATE #2

Добавил BMP PNG из Fraps'а. Где-то мой косяк, согласен: предполагал, что получить скриншот с результатами FXAA непосредственно из игры нельзя, как это нельзя сделать в случае с MLAA, но, как выяснилось, можно, т.к. это не постобработка фреймов драйвером после вывода на экран, а прямая картинка через инъекцию.

habr.com

[Spin-Off] Anti-Aliasing (AA) в современных играх / Персональный блог Об играх — изнутри

В комментах к предыдущим двум частям "Технологий графики в современных играх" меня не раз спрашивали про антиалайзинг. Как говорится, «получите, распишитесь».
Вообще рассказать про АА я собирался в третьей части, но я не успеваю закончить её за эти выходные. Плюс, стиль изложения в данном случае никак не согласуется с остальной серией статей (слишком суровая теория).
Поэтому я решил выделить тему о сглаживании в такой мини-спин-офф. Но читать настоятельно рекомендуется в продолжение самой третьей части.


Или, по-нашему — … тоже антиалайзинг. Полноценного русского названия для этой технологии просто нет. Можно перевести его как «устранение эффекта лесенки» или «устранение ступенчатости». В играх его часто переводят как «сглаживание». Но все эти варианты не совсем корректны, и в среде людей, занимающихся графикой, просто используют кальку с английского названия.

Чтоб разобраться, что это за зверь такой — "антиалайзинг" — и с чем его едят, надо сперва выяснить, что такое «алайзинг» (aliasing) и откуда он берётся.

Внимание!
Расстановка точек над АА невозможна без некоторой суровой теории. И картинки по ходу тоже будут не красивыми скриншотами из ААА-игр, а специальными синтетическими примерами.
Если тебе такое не по силам / не интересно — крути вниз, к кратким выводам.

Aliasing — лезем в дебри

Дело в том, что компьютерная графика, как и всё компьютерное, дискретна.
Если брать конкретно изображение — то с точки зрения процессора это всего-навсего таблица из пикселей. Об этом ты и без меня знал. Но вот из-за этой фундаментальной вещи — начинаются проблемы.

Допустим, у нас в кадре есть чайник (так уж повелось у 3D-шников: брать его в качестве болванки).

Иллюстрация

Для камеры он будет выглядеть вот так:

Я специально беру экстремально низкое разрешение

Каждая ячейка — это отдельный пиксель.
В реальной природе (например, на матрице фотоаппарата) каждый пиксель получит средний цвет той области, которую он представляет. То есть,

получится именно то, что мы ожидаем


Но так обстоят дела в реальной природе. Когда же изображение создаётся искуственно, компьютер не может получить средний цвет в области, потому что никаких «областей» и нет. Есть лишь пиксели. И цвета для них ему надо откуда-то «придумать». Что он и делает.
Рендеринговый движок при создании картинки «стреляет» из камеры лучами в центр каждого пикселя:

лучи я изобразил синими точками

… потом — смотрит, в какую точку на поверхности этот луч попал, и вычисляет в ней цвет.
Вот тут-то — и лежит наш камень преткновения, именуемый алайзингом.

Как ты уже, наверняка, понял, лишь одна эта точка раскрашивает весь пиксель. Хотя на самом деле должна влиять вся область, которую он охватывает.
И в компьютерной графике в принципе нет способа «по-честному» вычислить именно цвет области. Только так: стреляем семпл (англ sample, «проба») в каком-то направлении -> находим, куда он попал -> вычисляем там цвет -> назначаем цвет этого семпла соответствующему пикселю.
В результате — возникает сразу 2 проблемы:
1. Любой семпл в любую поверхность может либо попасть, либо нет. Только 2 варианта. Поверхность не может находиться в пикселе частично.
2. В связи с этим — рендеринговый движок может вообще «не увидеть» поверхность в каком-то пикселе. Просто потому, что соответствующий семпл в неё не попал.

Это и порождает тот самый злосчастный алайзинг


Но даже на этом беды не заканчиваются. Как следствие, вылазит ещё одна проблема: муар.
Это такой неестественный эффект, который вылазит на мелкой-мелкой повторяющейся фактуре:

словами его не объяснишь


Слева — муар, справа — то, что должно быть:

Своего врага мы теперь знаем в лицо. Осталось разобраться, как с ним бороться.

Super-Sampling (SSAA)

Корень зла — в том, что каждый семпл «видит» цвет лишь в одной точке. И не важно, в центре пикселя мы его «стреляем» или сбоку: попав в одном направлении, он тем самым упускает всё остальное.Так что самое простое и очевидное решение — «стрелять» по несколько семплов в каждом пикселе, а потом усреднять их цвета. Это и есть суперсемплинг.
Решение, что называется, «в лоб» (брутфорсное), и это палка о двух концах. С одной стороны, брутфорс всегда корректнее, чем всякие имитации. С другой — он и ресурсов требует гораздо больше.
Фактически, если мы стреляем в каждом пикселе по 2, 4, 8 семплов — это всё равно что рендерить картинку в разрешении, которое больше во столько же раз. То есть, и производительность падает пропорционально.

Со временем придумали разные алгоритмы для генерации дополнительных семплов, но они лишь повышали качество картинки, а требовательность к ресурсам оставалась прежней.

Примеры этих паттернов

Так что если ты увидишь в меню варианты вида «SSAA grid» и «SSAA rotated grid» — ты поймёшь, что речь как раз об этом. Grid — это самый первый (самый «дубовый») вариант, все остальные выглядят лучше при том же числе семплов.

Суперсемплинг также называют FSAA (Full-Scene AA), но на мой взгляд это весьма неудачная аббревиатура, т.к. возникают разночтения с FullScreen AA. То есть, с «полноэкранным антиалайзингом» — общим названием вообще всех видов АА как такового.
Ещё помнится, что я встречал в какой-то игре вариант перевода «избыточная выборка» — это тоже SSAA, только глазами надмозгов.

Multi-Sampling (MSAA)

В скором времени появилось развитие технологии суперсемплинга — мультисемплинг (надмозгами также именуемый «множественная выборка»). В отличие от SSAA, MSAA плодит (вернее, учитывает) дополнительные семплы не во всех пикселях, а лишь по мере необходимости. Обычно — только на границах объектов.
Кроме того, в этом алгоритме по-другому реализована генерация семплов: у некоторых пикселей они общие, что позволяет сократить их количество.

Grid-паттерн в SSAA и MSAA


А также добавлено хитрое размытие/усреднение в проблемных местах. Так что даже без дополнительных семплов MSAA уже немного «гасит» алайзинг.

Визуальное сравнение SSAA и MSAA


Как видно, MSAA немного размывает картинку. И оттого она получается не столь корректной, как при «честном» SSAA. Но он гораздо быстрее по производительности, что позволяет, скажем, вместо SSAAx2 использовать MSAAx4.

CSAA (Coverage Sampling AA)

Разработка от NVIDIA. Это просто слегка усовершенствованный алгоритм MSAA. Делает то же самое, но немного по-другому, а оттого — ощутимо быстрее.
Грубо говоря, 8xCSAA позволяет получить почти такую же картинку, как при 8xMSAA, но при этом видеопамяти требует немногим больше, чем 4xMSAA.

Синтетическая демонстрация CSAA


Есть также симметричный алгоритм от AMD — CFAA (Custom-Filter AA).

АА как пост-эффект

MSAA/CSAA показали, что важно не только плодить дополнительные семплы на соседних пикселях с высокой контрастностью, но и просто умело размывать их. Что породило ещё кучу новых видов АА, которые уже и вовсе являются не трёхмерными технологиями, а чисто двухмерными.
Они оперируют с готовым изображением (как фильтр в фотошопе), просто по-разному размывая уже имеющиеся пиксели/семплы. Соответственно, применяются они в самом конце, что позволяет комбинировать их с «честным» SSAA и «условно-честным» MSAA.
Всего их на сегодняшний день понаплодилось —

тьма тьмущая

DLAA — Directionally Localized AntiAliasing
EQAA — Enhanced Quality AntiAliasing
EdgeAA — Edge AntiAliasing
FXAA — Fast approXimate AntiAliasing
GPAA — Geometric Post-process AntiAliasing
GBAA — Geometry Buffer AntiAliasing
MLAA — MorphoLogical AntiAliasing
NFAA — Normal Filter AntiAliasing
SRAA — Subpixel Reconstruction AntiAliasing
SDAA — Second Depth AntiAliasing
SMAA — Subpixel Morphological AntiAliasing
TAA — Transparent AntiAliasing


Я в настоящее время пользуюсь Юнити, так что для сравнения могу показать лишь эти виды:
Сами по себе эти алгоритмы способны лишь устранить явную ступенчатость. Но, например, на длинных объектах тоньше пикселя (провода, верёвки) они ситуацию не спасают.
Впрочем, и использовать их надо не как самостоятельный АА, а лишь как дополнение к более брутфорсным братьям. Которое относительно дёшево позволяет немного повысить качество уже сглаженной картинки.

Кроме того, у всех пост-эффектных режимов сглаживания есть одно колоссальное преимущество: они дружат с deffered освещением. Что это такое — как-нибудь в другой раз, но штука эта в современных играх архи-нужная.

Из всего длиннющего списка пост-эффектных АА хочется выделить несколько:

FXAA (Fast approXimate AA) — самый эффективный метод по соотношению ресурсы/качество. Он весьма удачно справляется со сглаживанием на краях объектов. На верёвках, естественно, не особо помогает (как и все остальные в этом списке). Но он действительно шустрый. Что и позволило ему доминировать на консолях предыдущего поколения.
К сожалению, по природе своей, он не только сглаживает границы, но и слегка размывает текстуры. Однако это с лихвой оправдывается тем, что он практически бесплатен в сравнении с MSAA/CSAA.

Видео-обзор FXAA (англ.)

Сплит-скрин сравнение с MSAA

MLAA (MorphoLogical AA) — неожиданный «ход конём». В отличие от всех остальных видов антиалайзинга, этот работает не на видюхе, а на проце. Ощутимо медленнее, чем FXAA, зато и картинка гораздо корректнее.

Демонстрация оригинального MLAA от Intel на SIGGRAPH 2011

Демонстрация одной из реализаций MLAA на GPU от автора

SMAA (Subpixel Morphological AA) — смесь двух предыдущих. По сути своей — усовершенствованный FXAA, но:
а) он также использует алгоритм MLAA;
б) он очень тесно связан с SSAA/MSAA.
Для игрока это означает следующее: этот режим хоть и медленнее FXAA, но быстрее MSAA. Зато текстуры он не блюрит, и вообще по качеству соизмерим скорее со вторым, чем с первым.
Эпичная видео-демонстрация SMAA от СryTek под саундтрек из TRON: Legacy (vimeo)

Для ленивых — перезалив на YouTube (ничего не видно из-за сжатия, лучше смотри на vimeo)

TXAA (Temporal AA)

Самая убер-новая мега-последняя гипер-крутая технология сглаживания от NVIDIA.
Она комбинирует все существующие алгоритмы антиалайзинга: MSAA, пост-эффектный AA (TAA), а также собственный нвидишный новый фильтр временного (temporal) сглаживания.
До этого момента мы рассматривали неподвижную картинку. Но когда объекты в кадре движутся, они постоянно то попадают под новые семлы (в новые пиксели), то покидают их. В результате — возникает весьма неприятный эффект «дребезжания», который особо заметен при очень медленном движении (доля пикселя за кадр) и очень мелкой фактуре объектов (ширина полигона — примерно пиксель).
По идее, с этим эффектом уже весьма удачно справляется SMAA, но нвидия решила возвести решение этой проблемы в абсолют. Короче, лучше один раз увидеть, чем 100 раз услышать:

TXAA в the Secret World

TXAA в Assassins Creed III

TXAA в Unreal Engine 4 (примерно 0:28)


В отличие от SMAA, TXAA немного блюрит (размывает) картинку. Зато характерного «дребезжания» нет вообще.
ИЧСХ, во всех демонстрациях TXAA почему-то сравнивают не с другими режимами антиалайзинга, а с его отсутствием. Мне лично кажется, что в паре SMAA-TXAA выиграет первый, но по ютубу оценить трудно, а у самого прогнать синтетические тесты — нет возможности. Так что, как говорится, на вкус и цвет.

Краткие выводы

0. Отсутствие AA — жуть и безобразие.
1. SSAA — самый правильный, но и самый (до безобразия) тормозной алгоритм.
2. MSAA — относительно правильный, и приемлимо тормозной (если нет тех, что дальше).
3. CSAA — по качеству такой же, как MSAA, но значительно быстрее.
4. FXAA — практически бесплатный, но самый «мыльный».
5. MLAA — такой же, как CSAA/MSAA по качеству, но гораздо быстрее по скорости. И, как и FXAA, совместим с современными технологиями (deferred lighting).
6. SMAA — гораздо лучше по качеству, чем FXAA и MLAA, медленнее их по скорости, но по-прежнему быстрее, чем MSAA.
7. TXAA — адская вундервафля, про которую пока мало чего ясно. Соперничает с SMAA, но при этом стремится по скорости к MSAA, а по качеству — к FXAA. Но она единственная полностью устраняет эффект дребезжания (во всяком случае, так заявлено, а на глаз она это делает ничем не лучше, чем SMAA).

Ну и напоследок — срыв покровов.
Все эти режимы сглаживания в будущем могут оказаться попросту не нужны. Разрешения мониторов растут, уже достигли 4K, и при этом некоторые умудряются играть на нескольких мониторах. На всяких retina display — и вовсе невозможно разглядеть отдельный пиксель.
Так что предлагаю тебе сперва провести простой эксперимент:
1. сделать в фотошопе чёрную картинку с пятью-шестью одиночными яркими пикселями разных цветов. Разрешение картинки — как у твоего монитора. Желательно, если ты в ФШ ткнёшь карандашом в случайные места (чтоб сам не знал, где каждый пиксель).
2. Сохраняешь в PNG, открываешь картинку на весь экран через твой просмотровщик (вроде IrfanView).
3. Садишься на том расстоянии от монитора, на котором ты играешь, и ищешь глазами эти цветные пиксели.

Если на поиск у тебя ушло около минуты или больше — поздравляю! Тебе можно вообще класть болт на все эти навороченные антиалайзинги. По той причине, что ты просто не увидишь лесенку в игре, как бы ты ни старался. Грубо говоря, разрешение твоего монитора — больше, чем разрешение твоего глаза (на эту область).
Включай FXAA как почти-бесплатный — и радуйся бескомпромиссному качеству картинки.

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

stopgame.ru

Технология сглаживания NVIDIA TXAA | Статья компании HYPERPC

Игры кинематографического качества стали реальностью

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

Чтобы помочь в осуществлении такой четкости воспроизведения, компания NVIDIA создала еще более высококачественный режим сглаживания под названием TXAA, который создан для интеграции непосредственно в игровые движки. Объединяя высокую эффективность MSAA и продвинутые фильтры для повышения качества изображения, схожие с теми, которые используются при создании фильмов с компьютерной графикой, TXAA обеспечивает более плавное изображение, значительно превосходя любые сопоставимые техники сглаживания. Кроме того, TXAA также может осуществлять джиттер сэмплов целой сцены между кадрами, чтобы сократить дрожание, которое технически известно как временный алиасинг.

На данный момент сглаживание TXAA доступно в двух вариантах: TXAA 2x и TXAA 4x. TXAA 2x обеспечивает четкость изображения, сравнимую с 8xMSAA, при равных с 2xMSAA затратах производительности, а TXAA 4x обеспечивает четкость изображения выше, чем при 8xMSAA, при этом затраты производительности сравнимы с 4xMSAA.

NVIDIA® TXAA

TXAA – это новая техника сглаживания кинематографического качества, созданная специально для сокращения временного алиасинга ( сползание и мерцание при движении). Эта технология является комбинацией временного фильтра, аппаратного сглаживания и специальной компьютерной графики высокого качества. Для фильтрации пикселей на экране TXAA использует выборку сэмплов как внутри, так и снаружи пикселя, в соединении с выборками из предыдущих кадров, чтобы обеспечить по возможности самое высокое качество фильтрации.TXAA имеет улучшенную пространственную фильтрацию по сравнению со стандартными алгоритмами сглаживания 2xMSAA и 4xMSAA. К примеру, при воспроизведении ограждения, листвы или объектов в движении TXAA приближается, а порой и превосходит по качеству другие высококлассные профессиональные алгоритмы сглаживания. Более высококачественная фильтрация, применяемая в TXAA, приводит к более плавным изображениям по сравнению с менее качественной фильтрацией традиционного сглаживания MSAA.

TXAA объединяет высокую эффективность MSAA и продвинутые фильтры для повышения качества изображения, схожие с теми, которые используются при создании фильмов с компьютерной графикой, чтобы обеспечить более плавное изображение, значительно превосходя любые сопоставимые техники сглаживания. В зависимости от освещения, используемого в каждой отдельно взятой игре, ущерб производительности от использования TXAA может незначительно отличаться. В отличие от таких алгоритмов сглаживания, как FXAA, которые пытаются максимизировать производительность в ущерб качеству изображения, TXAA пытается максимизировать качество воспроизведения в ущерб производительности. TXAA – это лучший выбор для тех, кто ищет самое высококачественное сглаживание с максимально возможной производительностью, чтобы обеспечить лучшее изображение в таких играх, как Assassin’s Creed® III и Call of Duty®: Black Ops 2.

hyperpc.ru


Смотрите также



© 2010- GutenBlog.ru Карта сайта, XML.