Вернуться




Сглаживание FXAA и SSAA: что это в играх и за что оно отвечает?



Многие, наверное, встречали в играх, а точнее, в их настройках, такие значения, как «FXAA», «SSAA», «MSAA» или еще что-то подобное, но при этом не понимали, что это такое. Просто включали эти опции наугад и замечали, что картинка в играх становилась лучше. Логика даже подсказывала, что эти значения как-то связаны со сглаживанием изображения. Но «змей сомнения» сделал свое дело, и вы все-таки задались вопросом: «Что это такое за FXAA и SSAA в играх?». Поэтому вы оказались на этой странице, а значит, будем разбираться в этих терминах вместе.

 

Что это такое FXAA и SSAA в играх

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

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

Проблема «ступенчатых» изображений на экранах решается 2-мя проверенными подходами:

  1. Увеличивается разрешение экрана. При таком подходе количество пикселей на квадратный сантиметр увеличивается, а значит, вероятность увидеть «ступенчатые» линии уменьшается. Именно на этой технологии основываются 4К-изображения.

  2. Сглаживание. Это более «старый» и проверенный подход, который появился еще в 70-х годах. В то время создать экран с разрешением 4К не представлялось возможным, поэтому проблему решали как могли. Суть сглаживания сводится к тому, что на соседних от «ступенчатых» пикселях добавляют цвета и градиенты, что визуально смягчает «ступенчатые» объекты.

 

Как работает сглаживание SSAA и FXAA 

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

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

 

SSAA 

SSAA — это SuperSample Anti-Aliasing. Этот «страшный» термин обозначает, что сглаживание происходит на этапе построения игровой сцены.

У него достаточно простой принцип работы:

  1. Берется некое изображение с размерами, превышающими необходимые в 2, 4, 6, 8 и больше раз.

  2. Потом это изображение «сжимается» до размера вашего экрана.

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

Это одна из самых первых технологий для сглаживания, но ее все реже используют в современных играх, так как она ну очень сильно «любит» FPS и видеокарты. А пользователям компьютеров эта «любовь» не по вкусу. Поэтому ей на замену подготовили менее прожорливую технологию — MSAA.

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

 

FXAA

FXAAэто Fast approXimate Anti-Aliasing. Это сглаживание придумала компания NVIDIA. Его принцип основан на поиске резкой смены цветов на изображении и сглаживании именно этих проблемных участков. То есть сглаживается не все изображение целиком, а лишь его проблемный участок.

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

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

 

Заключение

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



Если вам понравилась эта статья поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересного и полезного контента!




Cхожие статьи





Стоит ли учиться программировать в 2021

Стоит ли учиться программировать в 2021

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

21 Февраля 2021    Другое

Плюсы и минусы Baas для разработки мобильных приложений

Плюсы и минусы Baas для разработки мобильных приложений

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

23 Марта 2021    Другое

Начинающий программист

Начинающий программист

Самыми легкими в изучении можно считать такие языки как JavaScript, Python, ...

23 Марта 2021    Другое



Напишем