На что влияет сглаживание в играх
Что такое сглаживание в играх или технология комфортного изображения
Доброго времени суток, вам, мои дорогие читатели. И сегодня я подготовил материал на тему что такое сглаживание в играх. Среди геймеров этот вопрос является одним из самых актуальных.
Поскольку знание нюансов используемых при этом технологий позволяет найти оптимальный компромисс между стоимостью аппаратной платформы, качеством картинки на экране и реалистичностью игрового процесса.
Откуда берутся «ступеньки»?
Сначала разберемся в терминологии. Многие привыкли, что гладкость относиться к характеристикам фактуры поверхности и определить её можно при тактильном контакте.
Она менее шершавая. А значит на ее поверхности меньше элементов, выходящих за пределы какой-то условной линии. Как все это соотносится к компьютерному изображению?
Да очень просто.
Ввиду пикселизации картинки получить идеально ровную линию, не соосную с решеткой матрицы экрана, практически невозможно. Возьмите из тетради лист в клетку и, представив, что это пиксельная разбивка. Нарисуйте линию под углом в 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, Временное приблизительное сглаживание). В алгоритме, с учетом времени учитывается пиксели из предыдущих и обрабатываемых кадров с последующим цветовым усреднением.
Постобработка готовых кадров
Но совсем необязательно применять сглаживание к объемным 3D моделям. Ведь аналогичную обработку можно выполнить уже после рендеринга.
- Для обладателей слабого компьютерного железа NVidia предложило довольно эффективное решение FXAA (Fast approXimate anti-aliasing).
Если верить названию, работает оно достаточно быстро, что достигается обработкой уже готовых изображений. Для контурных линий применяются математические методы обработки цвета, которые позволяют получить ярко выраженное сглаживание.
Иногда даже черезчур «гладкое», ведь недостатком данного способа является чрезмерное размыливание картинки. Но все-таки получаемый результат делает изображение более приятным, чем до обработки.
- Тем, у кого вообще графическая карта не предназначена для современных игр, но имеется мощный CPU, компания Intel предлагает свой аналог вышеописанного способа MLAA.
Обработка происходит медленнее, но зато разработчикам удалось избавиться от заметного размыливания.
- Учитывая тенденцию с повышению fps видеопотока, специалисты из NVidia создали специально для этих условий технологию MFAA (Multiframe Sampled Anti-Aliasing).
Чтобы ускорить обработку кадров здесь используется уникальный и простой алгоритм. Внутри пикселя, через которые проходит линия контура, создается две условные точки. И в зависимости от взаимного расположения линии и маркеров устанавливается цветовое значение.
Я представил вам только самые распространенные способы антиалиасинга, которые дают представление о самом процессе обработки. На самом деле сейчас существует достаточно большое количество технологий сглаживания. Рассказ о которых займет очень много времени.
Надеюсь теперь, что такое сглаживание в играх вам более-менее понятно. На этом прощаюсь, удачи и приятной картинки в играх.
Зачем нужно сглаживание в играх?
Сглаживание в играх устраняет «эффект лесенки» или «зубчатости» на краях объектов, что повышает реалистичность изображения. Сглаживание можно настраивать в программе настройки драйвера (у видеокарт ATI — «Catalyst Control Center», у видеокарт NVIDIA — «Панель управления NVIDIA») или в самой игре, выбирая значение, например 2X, 4X, 8X. Чем выше значение, тем более сглаженные будут объекты в игре. Сглаживание может снижать производительность игр. Чем выше значение, тем ниже производительность.
Сглаживание или «anti-aliasing» используется для того чтобы сгладить картинку, убрать так называемые «лесенки» и эффект «зубчатости», наиболее заметны они на прямых линиях в играх.
Существует несколько вариаций этой технологии и все они по разному взаимодействуют с изображением и нагружают видеокарту, но в тоже время в какой-то степени «замыливают» картинку. Вот основные типы сглаживания:
MSAA — работает по довольно простому принципу, создает картинку в несколько раз больше чем необходимо, а затем сжимает её до нужного размера. Получается довольно хороший результат, но нагрузка на видеокарту просто огромная, потому что чем больше вы выберите параметр 2X/4X/8X, тем большего размера будет создаваться и сжиматься картинка.
FXAA — данный метод основан на постобработке, то есть технология применяется уже к сформированному изображению необходимого разрешения. По качеству, в некоторых случаях этот метод может сравниться с 4-ёх кратным MSAA, однако при этом практически не создает нагрузку на видеокарту.
TXAA — самая свежая технология, используется только в видеокартах от NVIDIA. Дает очень плавную и сочную картинку, но создает ощутимую нагрузку на видеокарту. По своей ресурсоемкости это что-то среднее между MSAA и FXAA.
Какие настройки графики влияют на процессор в играх (температура загрузка)
Работа видеокарты сказывается на нагрузке процессора при выполнении сложных графических задач. Это могут быть приложения для дизайнеров либо компьютерные игры.
Часто требуются дополнительные настройки графики для улучшения качества изображения (статического и динамического), а так же для увеличения производительности.
Это самый базовый параметр. Чем выше разрешение, тем лучше качество. Однако чем четче картинка, тем больше загружен процессор.
При уменьшении разрешения качество изображения ухудшается, но ресурсы CPU можно использовать для других целей.
Базовые настройки графики
Во многих играх есть определенный набор комбинации параметров (сглаживание, тени, текстуры, анизотропная фильтрация и т.п.). Это позволяет задать общий тип графики: ультра, высокий, средний, низкий. Выбор профиля зависит от того, какие технические характеристики персонального компьютера или ноутбука.
Если хочется реалистичности, то может понадобиться замена комплектующих деталей с другой степенью производительности.
Эти настройки напрямую влияют на загрузку процессора, потому что связаны с разрешением экрана.
Данное свойство объектов позволяет их делать более объемными, живыми и подвижными. CPU так же будет работать на высокой скорости для реалистичных теней. Для экономии ресурсов этот параметр можно отключить в некоторых играх.
Этот параметр отвечает за такие события, как выстрелы, рассеивающаяся пыль, взрывы, огонь, дым. Регулирование качества эффектов будет влиять на производительность в зависимости от оптимизации кода.
Геометрия и стереометрия в проектировании игры нужны для перспективы объектов, детализации дальних объектов, степени сложности каркасов. С низкими параметрами CPU менее загружен, но игра становится плоской.
Такие свойства как мусор, трава, поверхность земли выделяются в отдельный параметр. Если нужна подробная картинка, то приходится жертвовать скоростью воспроизведения.
Степень искажения текстуры, размерность, количество pixels – за все это отвечает фильтрация. Есть три метода:
— анизотропная (используется для трехмерной графики, влияет на отображение объектов, которые находятся под углом к камере),
— билинейная (технология замены пикселов в текстурах для усреднения параметров, требует траты ресурсов, при этом качество изображение не на высоком уровне),
— трилинейная (метод, построенный на билинейной фильтрации, устранение недостатков происходит за счет падения резкости).
Самой эффективной и менее сложной математически считается анизотропная фильтрация. При этом влияние на CPU минимальное.
Суть метода состоит в том, что исходное изображение рассчитывается в двукратно увеличенном разрешении. В момент вывода объекта в игре, границы объекта кажутся более гладкими за счет изменения разрешения. Чем выше коэффициент сглаживания и разрешение, тем менее неровные края у текстуры.
В играх используются Full Scene Anti-Aliasing (FSAA) и Multisample Anti-Aliasing (MSAA).
Первый вид работает на полноэкранных изображениях и задействует высокую вычислительную мощность, так как обрабатывается вся картинка.
MSAA работает только с краями текстуры, поэтому не требует серьезных ресурсов. Происходит незначительные потери качества графики.
Параметр оказывает влияние только на GPU. Имитирует дневное и комнатное освещение. Графика становится более яркой и близкой к реальности.
Motion Blur (размытие)
При быстром движении камеры объекты становятся размытыми, что позволяет точнее передать скорость. Влияет на графический процессор.
Резкость (Depth of field)
Глубина резкости так же делает картинку приближенной к реальности. Близкие объекты имеют четкие границы. Дальние отображаются более размытыми.
Параметр не загружает процессор.
Под вертикальной синхронизацией понимается синхронизация частоты изменения игровых кадров с частотой разложение и воспроизведения изображения на экране монитора в вертикальном направлении.
Если V-Sync включен, то частоты будут совпадать или близки друг к другу.
Сильно влияет на производительность.
Роль процессора в играх
Как известно, CPU передает команды с внешних устройств в систему, занимается выполнением операций и передачей данных. Скорость исполнения операций зависит от количества ядер и других характеристик процессора. Все его функции активно используются, когда вы включаете любую игру. Давайте подробнее рассмотрим несколько простых примеров:
Обработка команд пользователя
Практически во всех играх как-то задействуются внешние подключенные периферийные устройства, будь то клавиатура или мышь. Ими осуществляется управление транспортом, персонажем или некоторыми объектами. Процессор принимает команды от игрока и передает их в саму программу, где практически без задержки выполняется запрограммированное действие.
Генерация случайных объектов
Многие предметы в играх не всегда появляются на одном и том же месте. Возьмем за пример обычный мусор в игре GTA 5. Движок игры за счет процессора решает сгенерировать объект в определенное время в указанном месте.
То есть, предметы вовсе не являются случайными, а они создаются по определенным алгоритмам благодаря вычислительным мощностям процессора. Кроме этого стоит учитывать наличие большого количества разнообразных случайных объектов, движок передает указания процессору, что именно требуется сгенерировать. Из этого выходит, что более разнообразный мир с большим количеством непостоянных объектов требует от CPU высокие мощности для генерации необходимого.
Давайте рассмотрим данный параметр на примере игр с открытым миром, так получится более наглядно. NPC называют всех персонажей, неуправляемых игроком, они запрограммированы на определенные действия при появлении определенных раздражителей. Например, если вы откроете в GTA 5 огонь из оружия, то толпа просто разбежится в разные стороны, они не будут выполнять индивидуальные действия, ведь для этого требуется большое количество ресурсов процессора.
Кроме этого в играх с открытым миром никогда не происходят случайные события, которые не видел бы главный персонаж. Например, на спортивной площадке никто не будет играть в футбол, если вы этого не видите, а стоите за углом. Все вращается только вокруг главного персонажа. Движок не будет делать того, что мы не видим в силу своего расположения в игре.
Объекты и окружающая среда
Процессору нужно рассчитать расстояние до объектов, их начало и конец, сгенерировать все данные и передать видеокарте для отображения. Отдельной задачей является расчет соприкасающихся предметов, это требует дополнительных ресурсов. Далее видеокарта принимается за работу с построенным окружением и дорабатывает мелкие детали. Из-за слабых мощностей CPU в играх иногда не происходит полная загрузка объектов, пропадает дорога, здания остаются коробками. В отдельных случаях игра просто на время останавливается для генерации окружающей среды.
Дальше все зависит только от движка. В некоторых играх деформацию автомобилей, симуляцию ветра, шерсти и травы выполняют видеокарты. Это значительно снижает нагрузку на процессор. Порой случается, что эти действия необходимо выполнять процессору, из-за чего происходят просадки кадров и фризы. Если частицы: искры, вспышки, блески воды выполняются CPU, то, скорее всего, они имеют определенный алгоритм. Осколки от выбитого окна всегда падают одинаково и так далее.
Какие настройки в играх влияют на процессор
Давайте рассмотрим несколько современных игр и выясним, какие настройки графики отражаются на работе процессора. В тестах будут участвовать четыре игры, разработанные на собственных движках, это поможет сделать проверку более объективной. Чтобы тесты получились максимально объективными, мы использовали видеокарту, которую эти игры не нагружали на 100%, это сделает тесты более объективными. Замерять изменения будем в одних и тех же сценах, используя оверлей из программы FPS Monitor.
Изменение количества частиц, качества текстур и снижение разрешения никак не поднимают производительность CPU. Прирост кадров виден только после снижения населенности и дальности прорисовки до минимума. В изменении всех настроек до минимума нет никакой необходимости, поскольку в GTA 5 практически все процессы берет на себя видеокарта.
Благодаря уменьшению населенности мы добились уменьшения числа объектов сложной логикой, а дальности прорисовки – снизили общее число отображаемых объектов, которые мы видим в игре. То есть, теперь здания не обретают вид коробок, когда мы находимся вдали от них, строения просто отсутствуют.
Эффекты постобработки такие, как глубина резкости, размытие и сечение не дали прироста количества кадров в секунду. Однако небольшое увеличение мы получили после снижения настроек теней и частиц.
Кроме этого небольшое улучшение плавности картинки было получено после понижения рельефа и геометрии до минимальных значений. Уменьшение разрешения экрана положительных результатов не дало. Если уменьшить все значения на минимальные, то получится ровно такой же эффект, как после снижения настроек теней и частиц, поэтому в этом нет особого смысла.
Crysis 3
Crysis 3 до сих пор является одной из самых требовательных компьютерных игр. Она была разработана на собственном движке CryEngine 3, поэтому стоит принять во внимание, что настройки, которые повлияли на плавность картинки, могут не дать такого результата в других играх.
Минимальные настройки объекты и частиц значительно увеличили минимальный показатель FPS, однако просадки все равно присутствовали. Кроме этого на производительности в игре отразилось после уменьшения качества теней и воды. Избавиться от резких просадок помогло снижение всех параметров графики на самый минимум, но это практически не отразилось на плавности картинки.
В этой игре присутствует большее разнообразие поведений NPC, чем в предыдущих, так что это значительно влияет на процессор. Все тесты проводились в одиночном режиме, а в нем нагрузка на CPU немного понижается. Добиться максимально прироста количества кадров в секунду помогло снижение качества пост обработки до минимума, также примерно этот же результат мы получили после снижения качества сетки до самых низких параметров.
Качество текстур и ландшафта помогло немного разгрузить процессор, прибавить плавности картинки и снизить количество просадок. Если же снизить абсолютно все параметры до минимума, то мы получим больше пятидесяти процентов увеличения среднего значения количества кадров в секунду.
Степень загрузки процессора зависит от оптимизации игры и вариаций в настройках. Есть отдельные утилиты, повышающие производительность после анализа требований игрового пространства. У разных игр будут разные требования: для некоторых важнее скорость процессора, для других – видеокарта, для третьих – одинаково высокопроизводительными должны быть и CPU, и GPU.
Сглаживание в играх (Anti-Aliasing)
Сглаживание (Anti-Aliasing) — технология устранения эффекта «зубчатости», возникающего на краях множества плоских или объёмных изображений.
Обращаем ваше внимание, что, по данным редакции, включенная технология сглаживания не влияет на качество прицеливания в играх, например, в Counter-Strike.
Демонстрация работы технологии сглаживания на примере игр CRYTEK:
Типы сглаживания
SSAA — Высокое качество сглаживания при большой нагрузке на GPU. Потребление ресурсов системы: для разрешения 1280×1024 с SSAA 4x необходим экранный буфер такого же размера, как при разрешении 2560×2048 без SSAA.
MSAA — Высокое качество сглаживания при большой нагрузке на GPU. Данный способ меньше нагружает систему чем SSAA, но тем не менее требует высокопроизводительную видеокарту.
CSAA — разработка NVIDIA. При уровне сглаживания MSAA 8x загружает систему на уровне MSAA 4x.
FXAA — Среднее качество сглаживания при минимальной нагрузке на GPU. У этого способа есть существенный недостаток, а именно — замыливание текстур.
SMAA — Высокое качество сглаживания при разделении нагрузки между GPU и CPU. Замыливание текстур практически не заметно.
TXAA — Сочетает преимущества MSAA и FXAA и примерно равное сглаживание при значении в TXAA 4x и MSAA 8x. Однако замыливание заметное в сравнении с последним.
Сейчас актуален для слабых видеокарт FXAA, а для производительных TXAA или MSAA.
По вертикали уровень качества обработки (выше — лучше)
По горизонтали быстродействие (левее -лучше)
Графические настройки в компьютерных играх — подробный разбор
На сайте PC Gamer появился интересный разбор графических настроек в компьютерных играх, где подробно рассказано обо всех популярных инструментах, фильтрах и механизмах обработки изображения. Мы перевели его на русский язык, чтобы вы могли сами настраивать свои игры, избавляться от лагов и любоваться красивой графикой.
Итак, сегодня мы с вами разберемся, что означают те или иные графические настройки в компьютерных играх.
У Nvidia и AMD есть программное обеспечение для автоматической настройки графики согласно техническим характеристикам вашего компьютера. Со своей задачей программы справляются неплохо, но часто ручная настройка приносит куда больше пользы. Все-таки, мы ПК-бояре, у нас должна быть свобода выбора!
Если вы новичок в области игровой графики, это руководство создано специально для вас. Мы расшифруем основные пункты любого меню «Настройки графики» в ваших играх и объясним, на что они влияют. Эта информация поможет вам избавиться от лагов и фризов в любимой игре, не лишаясь красивой картинки. А владельцы мощных компьютеров поймут, как настроить самую сочную и привлекательную графику, чтобы записывать крутые видео и делать зрелищные скриншоты.
Начнем с фундаментальных понятий, а затем пройдемся по тонким настройкам в рамках нескольких разделов, посвященных анизотропной фильтрации, сглаживанию и постобработке. Для написания этого гайда мы пользовались информацией, полученной от профессионалов: Алекса Остина, дизайнера и программиста Cryptic Sea, Николаса Вайнинга, технического директора и ведущего программиста Gaslamp Games и от представителей Nvidia. Сразу отметим, что статью мы пишем простыми словами, опуская подробные технические детали, чтобы вам было легче понять механизмы работы разных технологий.
Содержание
Разрешение
Пиксель — основная единица цифрового изображения. Это цветовая точка, а разрешение — количество столбцов и рядов точек на вашем мониторе. Самые распространенные разрешения на сегодня: 1280×720 (720p), 1920×1080 (1080p), 2560×1440 (1440p) и 3840 x 2160 (4K или «Ultra-HD»). Но это для дисплеев формата 16:9. Если у вас соотношение сторон 16:10, разрешения будут слегка отличаться: 1920×1200, 2560×1600 и т.д. У ультрашироких мониторов разрешение тоже другое: 2560×1080, 3440×1440 и т.д.
Кадры в секунду (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:
1980х720 (½ родного разрешения)
2560х1440 (родное разрешение)
5120х2880 (x2 родного разрешения)
Вертикальная синхронизация и разрывы кадров
Когда цикл обновления дисплея не синхронизирован с циклом рендеринга игры, экран может обновляться в процессе переключения между готовыми кадрами. Получается эффект разрыва кадров, когда мы видим части двух или более кадров одновременно.
Одним из решений этой проблемы стала вертикальная синхронизация, которая почти всегда присутствует в настройках графики. Она не позволяет игре показывать кадр, пока дисплей не завершит цикл обновления. Это вызывает другую проблему — задержка вывода кадров, когда игра способна показать большее количество 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):