Получать новые статьи на свою почту
Популярные статьи
  • Что такое жёсткий диск и в чём его сходство с подробнее
  • Процессор — все точки над i подробнее
  • В чём прикол твёрдотельных накопителей? подробнее
  • Видеокарта — функции и суть данной железки подробнее
Поддержать проект
03.09.2018
Блог Дмитрия Вассиярова.
Автор: Рубрика:

Что такое сглаживание в играх или технология комфортного изображения

Лого

 

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

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

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

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

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

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

 

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

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

  • Для обладателей слабого компьютерного железа NVidia предложило довольно эффективное решение FXAA (Fast approXimate anti-aliasing). Если верить названию, работает оно достаточно быстро, что достигается обработкой уже готовых изображений. Для контурных линий применяются математические методы обработки цвета, которые позволяют получить ярко выраженное сглаживание. Иногда даже черезчур «гладкое», ведь недостатком данного способа является чрезмерное размыливание картинки. Но все-таки получаемый результат делает изображение более приятным, чем до обработки.

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

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

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

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

 

 

Этой статьей стоит поделиться
Получать новые статьи на свою почту

Оставить коментарий

:|:x:shock::oops::mrgreen::lol::idea::evil::cry::cool::arrow::???::?::!: