0

Зачем нужно сглаживание в играх

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

Сгла́живание (англ. 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.

Читайте также:  Все что связано с интернетом

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

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

Откуда берутся «ступеньки»?

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

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

Да очень просто.

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

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

Что такое сглаживание в играх или «шлифование»

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

С этим справляется технология «antialiasing», создана еще в 1972 году в Массачусетском технологическом институте. Изначально разработка Architecture Machine Group предназначалась для более комфортного (для пользователя) отображения текста.

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

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

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

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

Обработка с масштабированием в процессе формирования 3D образов

Первый способ SSAA (SuperSample Anti-Aliasing) был задействован еще в DirectX 7. Чтобы подобрать правильные полутона на граничных пикселях необходимо изначально создать модель в более высоком разрешении. Далее рассчитать параметры сглаживания и снова уменьшить образ с учетом прорисовки граничных пикселей. Что это дает и как работает сглаживание?

  • Например, у нас есть белое поле 10 х10 пикселей в котором нарисован черный круг (для этого рисуем его циркулем, и те квадраты, в которые он попадают, закрашиваем).
  • Теперь каждый наш исходный пиксель разобьем на 4-е части (то есть, образуем сетку 20 х 20) и выполним ту же операцию с рисованием круга.

  • Получим ситуацию, в которой внутри исходных граничных пикселей будет закрашено 1, 2, 3 или 4 субпикселя. В соответствие с этими значениями объединяющие их исходные пиксели заливаем соответственно различными оттенками серого, с насыщенностью в 25%, 50%, 75% или снова полностью черным.

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

Чем большее увеличение мы используем для обработки, тем более точным и правильным получается наше сглаживание. На практике программно предусмотрены варианты 2х, 4х, 8х и 16х масштабирование.

Как это повлияет на железо?

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

Данная технология не могла оставаться такой ресурсоемкой. И в качестве альтернативы была предложена ее версия MSAA (Multisample anti-aliasing). Ее основное отличие от предыдущей в том, что сглаживание применялось только к видимым линиям и поверхностям (что вполне логично).

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

Nvidia решила доработать MSAA и создала способ сглаживания с выборкой охвата – CSAA (Coverage Sampling anti-aliasing). Здесь активно используются программные алгоритмы обработки графики, предусмотренные в самом GPU чипе.

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

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

Читайте также:  Как вернуть предыдущую версию приложения на iphone

Это технология TXAA (Temporal approXimate Anti-Aliasing, Временное приблизительное сглаживание). В алгоритме, с учетом времени учитывается пиксели из предыдущих и обрабатываемых кадров с последующим цветовым усреднением.

Постобработка готовых кадров

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

  • Для обладателей слабого компьютерного железа NVidia предложило довольно эффективное решение FXAA (Fast approXimate anti-aliasing).

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

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

  • Тем, у кого вообще графическая карта не предназначена для современных игр, но имеется мощный CPU, компания Intel предлагает свой аналог вышеописанного способа MLAA.

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

  • Учитывая тенденцию с повышению fps видеопотока, специалисты из NVidia создали специально для этих условий технологию MFAA (Multiframe Sampled Anti-Aliasing).

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

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

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

Любой хотя бы раз видел в игре настройку «Сглаживание», оно же 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 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680×4320 от изначального 1920×1080.

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

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

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

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

DSR (Dynamic Super Resolution)

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

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

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

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

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

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

Читайте также:  Блок бесперебойного питания предназначен для

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

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

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

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

Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360×8640), при 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 соответствует разрешению 2560×1440, а x4 соответствует 3840×2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.

Также необходимо выставить параметр «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 выбираем уровень сглаживания. Рекомендуется либо 2×2 Supersampling, либо 4×4 Supersampling.
  4. Нажимаем кнопку Apply changes.

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

Сравнение

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

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

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

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

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

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

Вывод

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

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

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

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *