Что значит время видеокарты в игре

Обновлено: 04.07.2024

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

Что такое FPS

FPS — это сокращение от английского выражения Frames Per Second. В российских игровых сообществах уже привыкли писать fps или даже «фпс». На великий и могучий Frames Per Second переводят как «кадры в секунду». Благодаря этому понять, что такое fps в играх (и в видео в принципе) становится проще.

FPS показывает, сколько кадров (отдельных картинок) ваш монитор или телевизор демонстрирует каждую секунду. Чем выше частота кадров, тем плавнее и отзывчивее становится игра. С другой стороны, при низких показателях FPS играть становится менее приятно. Возможно, друзья иногда жаловались вам, что не могут играть из-за «слайд-шоу на экране». Это значит, что у них низкий показатель FPS, и они видят очень мало кадров в секунду.

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



Что влияет на fps в играх?

В видеоиграх частота кадров зависит как от разработчика, так и от самого геймера. Создатель игры должен обеспечить выпуск продукта без технических проблем, а покупатель — быть уверен, что у него есть платформа, которая позволит запустить игру с приемлемой частотой кадров (на текущий момент это 30 FPS, но ситуация стремительно меняется). Один из самых ярких примеров 2021 года — Cyberpunk 2077. Столь ожидаемая игра испытывала технические проблемы на консолях прошлого поколения (PlayStation 4 и Xbox One) и не могла обеспечить геймеру игру при стабильных 30 кадрах в секунду.

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

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

Разница между низким и высоким FPS

Представьте, что вы смотрите, как кто-то бежит. При 1 FPS вы будете видеть лишь 1 кадр в 1 секунду. Таким образом, для вас преодоление человеком 1 метра в видео при 1 FPS превратится в пытку. Чем выше FPS, тем плавнее будут становиться его движения. Пример можно найти в анимации. В «Человеке-пауке: Через вселенные» молодой и неопытный паук в лице Майлза Моралеса дёргается, в то время как Питер Паркер летает на паутине плавно. Так аниматоры хотели показать разницу в мастерстве героев.



Сколько FPS должно быть в играх

Так какая частота кадров необходима, чтобы было комфортно играть?

  • 30 FPS — на сегодняшний день это минимальное количество кадров в секунду, которое обеспечивает более или менее комфортное времяпрепровождение за игрой.
  • 60 FPS — в ближайшем будущем станет стандартом, потому что консоли PlayStation 5 и Xbox Series X позволяют наслаждаться более плавной и чёткой картинкой с 60 кадрами в секунду.
  • 120 FPS — достижимо только на компьютерах с флагманскими комплектующими, а также при наличии монитора/телевизора с частотой обновления экрана 144 Гц и выше. Чаще всего требуется для киберспортсменов.
  • 240 FPS — максимальная частота кадров, которую можно достичь при наличии монитора или телевизора с частотой обновления 240 Гц.

Чем лучше игры с высоким показателем FPS?

Во-первых, нужно понимать, зачем вам высокий показатель FPS. Для комфортной игры большинству геймеров достаточно 60 FPS. Это актуально для тех, кто любит проходить одиночные проекты (например, Mafia: Definitive Edition, Red Dead Redemption 2, Far Cry 6), веселиться с друзьями в кооперативных приключенческих (Dying Light, Borderlands 3) или казуальных играх (Animal Crossing). Если же вы спите и видите себя киберспортсменом, то для вас, чем выше FPS, тем лучше. Большое количество кадров позволит быстрее реагировать на ситуацию и даже точнее стрелять.



Как узнать FPS в играх?

Есть несколько способов узнать фпс в игре. Первый — запустить тестирование в самой игре. Часто разработчики добавляют в игру бенчмарк (тест производительности), запустить который можно в меню. В течение минуты или более, игра демонстрирует сцены в разной обстановке: ночью, днём, с толпой людей, пустые территории и так далее. После теста игра показывает результаты в виде частоты кадров.

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





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

Как добиться высокого FPS в играх?

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

Вариант сложнее, а точнее — затратнее: обзавестись платформой, которая будет обеспечивать вас стабильным и высоким FPS. Возможно, стоит обратить внимание на консоли: PlayStation 5 и Xbox Series X, игры для которых адаптируются для 60 FPS.

Что в итоге?

FPS — это частота кадров в секунду, демонстрируемая игрой. Чем выше этот показатель, тем лучше. Движения героев станут плавнее, а проводить время за такой игрой будет приятнее. Если вы не киберспортсмен или почти не играете в соревновательные игры вроде Apex Legends, Call of Duty: Warzone, CS:GO — вам не обязательно добиваться 60 FPS. Для комфортной игры чаще всего нужно от 45 до 60 кадров в секунду. Добиться этого показателя можно снижением настроек графики или покупкой нового оборудования: комплектующих для ПК, игровых консолей.

За последние годы можно наблюдать всё растущее понимание, что одного только среднего FPS по какой-либо выбранной для целей тестирования игровой сцене недостаточно для описания производительности компьютерной системы, а минимальный и максимальный FPS в этом деле совсем не помощники. Давайте разберёмся, в чём недостаток среднего FPS, чем так плох минимальный FPS, а также познакомимся с набравшими популярность более удачными мерилами игровой производительности — показателями 1% и 0.1% низкие FPS.


Кадр из ролика What Are 1% & 0.1% Lows? канала Gamers Nexus

Время кадра, мгновенный и средний FPS

реклама

Отрисовка каждого кадра в игре занимает некоторое время, которое называется, временем отрисовки кадра, или, коротко, временем кадра (frame time). Исчисляется время кадра обычно в миллисекундах (мс), т.е. тысячных долях секунды. Однако в игровых бенчмарках вместо этой характеристики много чаще используется частота смены кадров или, коротко, частота кадров (frame rate), равная количеству кадров, отрисованных за единицу времени. Измеряется частота кадров в количестве кадров в секунду (frames per second, fps), и для краткости частоту кадров также очень часто также именуют аббревиатурой от названия её единицы измерения, т.е. FPS.

Между временем кадра и частотой кадров есть очевидная математическая связь: значение FPS, подсчитанное непосредственно после отрисовки очередного кадра, именуемое обычно мгновенным FPS, есть величина обратная времени этого кадра:

Дешевая 3070 Gigabyte Gaming - успей пока не началось


Необходимо только учесть, что время кадра обычно исчисляется в миллисекундах, а частота кадров в единицах в секунду, поэтому итоговая формула для мгновенного FPS будет такова:

реклама

var firedYa28 = false; window.addEventListener('load', () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);


Так, например, если очередной кадр был отрисован, скажем, за 16 мс, то сразу по окончании его отрисовки мгновенный FPS был равен 1000/16 = 62.5 кадра в секунду.

Но главное мерило производительности, это, конечно же, средний FPS по всей игровой сцене, который с одной стороны представляет собой не что иное, как количество кадров n, отрисованных за всё время бенчмарка t


реклама

С другой же стороны, средний FPS можно вычислить как величину, обратную среднему времени кадра


\text<FPS></p>
<p>_\text = 1 / t_\text

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

реклама

t_1 + t_2 + \dotsb + t_n = t

\text</p>
<p>Впрочем, всё это, в каком-то смысле, очевидно. А вот что совсем не так очевидно, так это то, что средний FPS не является средним арифметическим значений мгновенного FPS<em>_\text \neq (\text_1 + \text_2 + \dotsb + \text_n) / n

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

\text<FPS></p>
<p>_\text = 1000 / t_\text = 1000 n / (t_1 + t_2 + \dotsb + t_n)

хотя и имеет что-то общее с выражением в правой

(1000 / t_1 + 1000 / t_2 + \dotsb + 1000 / t_n) / n

но ему в общем случае не равно. При ближайшем рассмотрении видно, что равенство будет иметь место лишь в частном случае, когда все ti равны между собой (t1=t2=. =tn), то есть когда значения времени всех кадров идентичны, что, конечно же, практически невозможно.


помимо всем хорошо знакомого среднего арифметическогосуществует ещё несколько средних величин, из которых нам интересна здесь лишь одна, а именно, среднее гармоническоеЕсли словами, то среднее гармоническое по некоторому набору чисел есть обратная величина к среднему от обратных к числам величинам. Звучит, конечно, несколько кошмарно, и не очень понятно, зачем вообще нужно, но сейчас разберёмся. Давайте сразу скажем, что в общем и целом две обсуждаемые средние величины не равны друг другу, за исключением частного случая равенства всех чисел в наборе, x1=x2=…=xn, того самого случая, который для среднего FPS мы отмечали выше.

Так же как и среднее арифметическое, среднее гармоническое находит своё применение в ряде практических задач. Так, например, если некоторый объект несколько раз подряд преодолевает одно и тоже расстояние с разной скоростью, то его средняя скорость на всём пути есть среднее гармоническое скоростей на всех участках. То есть если n раз проехать расстояние d со скоростями v1, v2, …, vn, то время прохождения каждого отрезка составит ti = d/vi, а средняя скорость, равная по определению отношению длины пути, пройденного телом, ко времени, за которое этот путь был пройден, будет равна


т.е. среднему гармоническому скоростей, а не их среднему арифметическому. Например, если Вы по пути на дачу на первом километре попали в “пробку” и двигались со скоростью 30 км/ч, а на втором километре “затор” рассосался и Вы “втопили” уже "под 90", то средняя скорость за 2 километра составила, 2 / (1/30 + 1/90) = 45 км/ч, а не (30 + 90) / 2 = 60 км/ч, в чём легко убедиться. Смотрите, Вы проехали 2 км, и если бы Ваша средняя скорость была равна 60 км/ч, то на дорогу у Вас ушло бы всего навсего 2 км / 60 км/ч = 1/30 ч, т.е. 2 минуты. В реальности же только на первый километр Вы уже потратили 1 км / 30 км/ч = 1/30 ч, эти самые 2 минуты, а затем ещё 1 км / 90 км/ч = 1/90 ч (чуть меньше минуты) ушло на второй километр.

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

Минимальный, 1% и 0.1% низкие FPS

Что ж, со средним FPS разобрались, едем дальше. Собственно, очень давно известно, что использование каких-либо средних величин в качестве единственных характеристик некоего набора данных — всегда плохая идея. Так, например, в нашем конкретном случае необходимо понимать, что время каждого кадра напрямую зависит от его сложности, и периодически в игре могут встречаться кадры со сложностью, существенно превышающей среднюю, на отрисовку которых, как следствие, уходит заметно больше времени. В результате такие “длинные” кадры задерживаются на экране существенно дольше и могут приводить к визуально заметным “подтормаживаниям” и “фризам”, способным испортить всё удовольствие от игры. И тут надо понимать, что такие “длинные” кадры часто бывают редкими, и проблема использования среднего FPS и состоит как раз в том, что в процессе усреднения значений времени кадра информация о “длинных” редких кадрах теряется.

Поясню на небольшом примере. Пускай, за 1 секунду игрового времени было отрисовано 30 кадров со следующими значениями времени отрисовки в мс:

48, 35, 33, 31, 14, 38, 29, 24, 17, 16, 90, 21, 43, 36, 19, 22, 10, 11, 37, 26, 28, 18, 27, 98, 50, 47, 25, 42, 44, 21

Среднее время кадра равняется 33 мс, а средний FPS — 30 кадрам в секунду. Казалось бы, всё неплохо, но обратите внимание на присутствие парочки очень “длинных” кадров (выделенных жирным шрифтом) со временем отрисовки втрое большим среднего, а именно, 90 и 98 мс. При усреднении значений времени кадров информация о наличии столь “длинных” пускай и редких кадров была потеряна, и в результате полученные средние величины вроде бы сигнализируют о достижении минимального порога играбельности, но на деле визуально заметные “просадки” и “фризы” при подобного рода наборах значений времени кадра неизбежны.

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

В математической статистике существует понятие процентиля, которое для наших целей можно определить как значение, ниже которого находится определённый процент данных из набора. Например, 99-процентиль — значение, ниже которого находятся 99% данных из набора. В нашем примере с 30 кадрами, отрисованными за 1 с, 99-процентиль равен 96 мс, и означает это, что 99% значений времени кадра из нашего набора меньше 96 мс, и лишь 1% больше или равен этому значению. Обратите особое внимание, что в нашем конкретном случае из-за малого числа данных в наборе существенной разницы между минимальным значением и 99-процентилем нет, и, как следствие, 99-процентиль здесь ничем не лучше минимального значения в отношении грубых промахов. По сути из всего нашего набора данных лишь единственное значение (минимальное) и не попало “под” 99-процентиль. Однако, если набор данных будет существенно больше, скажем, будет содержать время отрисовки нескольких тысяч кадров, то “длинных” кадров, не попадающих “под” 99-процентиль будет уже порядка нескольких десятков и вместо единственного минимального значения, которое, возможно, является грубым выбросом, у нас будет иметься уже какая-никакая статистика по всем редким “длинным” кадрам. Это обеспечит не только более адекватное описание набора данных, но и значительно лучшую воспроизводимость результатов.

Надеюсь, теперь понятно, чем так хороши процентили, и здесь осталось прояснить лишь какие конкретно процентили использовать. И тут всё, по большому счёту, определяется негласными соглашениями в какой-либо области, и в игровых бенчмарках де-факто стандартом стали 99- и 99.9-процентили времени кадра. Точнее, как уже отмечалось выше, в игровых бенчмарках обычно приводят значения FPS, поэтому и вместо 99- и 99.9-процентилей времени кадра в результатах обычно фигурируют обратные им 1- и 0.1-процентили FPS, именуемые 1% низкий FPS и 0.1% низкий FPS, соответственно. При этом следует понимать, что 1% и 0.1% от всего набора данных — это лишь небольшая часть данных, описывающая редкие и крайне редкие игровые события. Поэтому в самом факте, что 1% низкий FPS и 0.1% низкий FPS оказываются зачастую значительно ниже среднего FPS нет ничего страшного — такая картина лишь говорит о том, что сложность кадров в игровой сцене непостоянна, что совершенно нормально. Плохо лишь, если обсуждаемые показатели "просаживаются" на конкретной игровой системе слишком сильно, выходя за границы играбельности, так как в этом случае нас ожидают визуальные неприятности.

Последнее, о чём, пожалуй, стоит ещё обмолвиться, перед тем, как перейти к выводам, так это так называемый средний за секунду (или по секунде) FPS, а также характеристики на нём основанные, например, минимальный средний за секунду FPS. Этот "зверь", впрочем, простой: средний за секунду FPS — это просто средний FPS на отрезке в 1 с. Равен он количеству кадров, отображённых за одну прошедшую конкретную секунду, но, так же как и средний FPS за всё время бенчмарка, может быть посчитан и как среднее гармоническое значений мгновенного FPS за эту конкретную секунду. Обычно, именно средний за секунду FPS и отображают на экране различные счётчики частоты кадров наподобие FRAPS, так как значение мгновенного FPS пришлось бы обновлять настолько часто, что в этом месиве всё равно бы никто ничего не разобрал. Использовать же значения среднего за секунду FPS вместо значений FPS мгновенного для более детального анализа бессмысленно, так как наиболее важная информация о времени отрисовки "длинных" кадров в них уже потеряна (см. пример выше). А касательно минимального среднего за секунду FPS упомянем лишь, что он, в отличие от минимального мгновенного FPS, может быть больше, скажем, 0.1% низкого FPS, что периодически порождает путаницу и неразбериху.

Каким должен быть комфортный FPS в играх

Часто на просторах Интернета можно столкнуться с ожесточенными спорами на тему приемлемого значения FPS для комфортной игры. Разброс во мнениях широк и варьируется начиная от 30 кадров в секунду, достигая значений в 144 и выше. Так кто же прав и есть ли единое мнение в этом вопросе?

Что такое FPS и с чем его едят

FPS — frames per second (число кадров в секунду) — параметр, отвечающий за число отдельных изображений, которые появляются на экране за одну секунду времени. Наш мозг, обрабатывая независимые кадры, создает иллюзию непрерывного движения. Чем больше кадров в секунду способен выдать компьютер и воспроизвести монитор, тем более плавным будет казаться увиденное. Низкое число кадров приводит к зависаниям и рывкам изображения.


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

В геймерском сообществе существуют устоявшиеся значения стабильного FPS, принимаемого за комфортное в различных играх. Такими значениями являются стабильные 30, 60, 120 и выше кадров в секунду.

30 FPS — достаточно ли?

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


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

Некоторые могут задаться вопросом: почему именно 30 кадров в секунду принято считать пороговым значением, если, к примеру, те же фильмы воспроизводятся с частотой в 24 кадра в секунду? Дело в том, что помимо вывода изображения игра фиксирует запросы, которые посылает игрок с помощью геймпада, клавиатуры с мышью и других устройств. При понижении числа кадров ниже 30 будет существенной задержка между посылаемым сигналом и его фактическим воспроизведением на экране, так называемый «input lag» (задержка отклика):


От 60 и выше

Разница между 30 и 60 FPS значительна и видна невооруженным взглядом. Изображение воспринимается более плавным, а управление более отзывчивым. 60 FPS принято считать эталоном игровой производительности. На данной частоте комфортно играть во все игры, будь то одиночные или многопользовательские.

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


Потребности в FPS в зависимости от жанра

Как упоминалось выше, игровые жанры требуют различного показателя FPS для комфортной игры. Если для прохождения одиночной видеоигры можно ограничиться 30 кадрами, то онлайн-игры, требующие высокой реакции, желательно запускать на частоте кадров от 60 и выше. Из наиболее требовательных к значению FPS жанров можно выделить шутеры от первого лица, ритм-игры, стратегии и игры в жанре MOBA.


Стоит отметить, что частота кадров свыше 60 отображается только на мониторах, поддерживающих повышенную частоту обновления. Например, монитор с частотой в 60 Гц (60 к/с) не может воспроизводить изображение выше собственной. Для игры на высоких показателях FPS необходимо обзавестись специализированным игровым монитором.

Не фреймрейтом единым. Проблемы с изображением помимо FPS

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


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

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


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

Заключение

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


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

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

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

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

Анизотропная фильтрация имеет лишь одну настройку коэффициент фильтрации (2x, 4x, 8x, 16x). Чем он выше, тем четче и естественнее выглядят текстуры. Обычно при высоком значении небольшие артефакты заметны лишь на самых удаленных пикселах наклоненных текстур. Значений 4x и 8x, как правило, вполне достаточно для избавления от львиной доли визуальных искажений. Интересно, что при переходе от 8x к 16x снижение производительности будет довольно слабым даже в теории, поскольку дополнительная обработка понадобится лишь для малого числа ранее не фильтрованных пикселов.

Шейдеры
Шейдеры это небольшие программы, которые могут производить определенные манипуляции с 3D-сценой, например, изменять освещенность, накладывать текстуру, добавлять постобработку и другие эффекты.

Шейдеры делятся на три типа: вершинные (Vertex Shader) оперируют координатами, геометрические (Geometry Shader) могут обрабатывать не только отдельные вершины, но и целые геометрические фигуры, состоящие максимум из 6 вершин, пиксельные (Pixel Shader) работают с отдельными пикселами и их параметрами.

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

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

Parallax mapping
Parallax mapping это модифицированная версия известной техники bumpmapping, используемой для придания текстурам рельефности. Parallax mapping не создает 3D-объектов в обычном понимании этого слова. Например, пол или стена в игровой сцене будут выглядеть шероховатыми, оставаясь на самом деле абсолютно плоскими. Эффект рельефности здесь достигается лишь за счет манипуляций с текстурами.

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

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

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

Anti-Aliasing
До появления DirectX 8 сглаживание в играх осуществлялось методом SuperSampling Anti-Aliasing (SSAA), известным также как Full-Scene Anti-Aliasing (FSAA). Его применение приводило к значительному снижению быстродействия, поэтому с выходом DX8 от него тут же отказались и заменили на Multisample Аnti-Аliasing (MSAA). Несмотря на то что данный способ давал худшие результаты, он был гораздо производительнее своего предшественника. С тех пор появились и более продвинутые алгоритмы, например CSAA.

Учитывая, что за последние несколько лет быстродействие видеокарт заметно увеличилось, как AMD, так и NVIDIA вновь вернули в свои ускорители поддержку технологии SSAA. Тем не менее использовать ее даже сейчас в современных играх не получится, поскольку количество кадров/с будет очень низким. SSAA окажется эффективной лишь в проектах предыдущих лет, либо в нынешних, но со скромными настройками других графических параметров. AMD реализовала поддержку SSAA только для DX9-игр, а вот в NVIDIA SSAA функционирует также в режимах DX10 и DX11.

Принцип работы сглаживания очень прост. До вывода кадра на экран определенная информация рассчитывается не в родном разрешении, а увеличенном и кратном двум. Затем результат уменьшают до требуемых размеров, и тогда «лесенка» по краям объекта становится не такой заметной. Чем выше исходное изображение и коэффициент сглаживания (2x, 4x, 8x, 16x, 32x), тем меньше ступенек будет на моделях. MSAA в отличие от FSAA сглаживает лишь края объектов, что значительно экономит ресурсы видеокарты, однако такая техника может оставлять артефакты внутри полигонов.

Раньше Anti-Aliasing всегда существенно снижал fps в играх, однако теперь влияет на количество кадров незначительно, а иногда и вовсе никак не cказывается.

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

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

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

Чтобы игра могла использовать тесселяцию, ей требуется видеокарта с поддержкой DirectX 11.

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

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

Если частота обновления монитора составляет 60 Гц, и видеокарта успевает просчитывать 3D-сцену как минимум с таким же количеством кадров, то каждое обновление монитора будет отображать новый кадр. Другими словами, с интервалом 16,66 мс пользователь будет видеть полное обновление игровой сцены на экране.

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

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

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

High dynamic range (HDR)
Эффект, часто используемый в игровых сценах с контрастным освещением. Если одна область экрана является очень яркой, а другая, наоборот, затемненной, многие детали в каждой из них теряются, и они выглядят монотонными. HDR добавляет больше градаций в кадр и позволяет детализировать сцену. Для его применения обычно приходится работать с более широким диапазоном оттенков, чем может обеспечить стандартная 24-битовая точность. Предварительные просчеты происходят в повышенной точности (64 или 96 бит), и лишь на финальной стадии изображение подгоняется под 24 бита.

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

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

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

Film Grain
Зернистость артефакт, возникающий в аналоговом ТВ при плохом сигнале, на старых магнитных видеокассетах или фотографиях (в частности, цифровых изображениях, сделанных при недостаточном освещении). Игроки часто отключают данный эффект, поскольку он в определенной мере портит картинку, а не улучшает ее. Чтобы понять это, можно запустить Mass Effect в каждом из режимов. В некоторых «ужастиках», например Silent Hill, шум на экране, наоборот, добавляет атмосферности.

Motion Blur
Motion Blur эффект смазывания изображения при быстром перемещении камеры. Может быть удачно применен, когда сцене следует придать больше динамики и скорости, поэтому особенно востребован в гоночных играх. В шутерах же использование размытия не всегда воспринимается однозначно. Правильное применение Motion Blur способно добавить кинематографичности в происходящее на экране.

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

SSAO
Ambient occlusion техника, применяемая для придания сцене фотореалистичности за счет создания более правдоподобного освещения находящихся в ней объектов, при котором учитывается наличие поблизости других предметов со своими характеристиками поглощения и отражения света.

Screen Space Ambient Occlusion является модифицированной версией Ambient Occlusion и тоже имитирует непрямое освещение и затенение. Появление SSAO было обусловлено тем, что при современном уровне быстродействия GPU Ambient Occlusion не мог использоваться для просчета сцен в режиме реального времени. За повышенную производительность в SSAO приходится расплачиваться более низким качеством, однако даже его хватает для улучшения реалистичности картинки.

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

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

В похожем стиле создают комиксы, поэтому прием часто используют именно в играх, имеющих к ним отношение. Из последних известных релизов можно назвать шутер Borderlands, где Cel shading заметен невооруженным глазом.

Особенностями технологии является применение ограниченного набора цветов, а также отсутствие плавных градиентов. Название эффекта происходит от слова Cel (Celluloid), т. е. прозрачного материала (пленки), на котором рисуют анимационные фильмы.

Depth of field
Глубина резкости это расстояние между ближней и дальней границей пространства, в пределах которого все объекты будут в фокусе, в то время как остальная сцена окажется размытой.

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

Лицезреть эффект глубины резкости в гипертрофированной форме можно на некоторых фотографиях. Именно такую степень размытия часто и пытаются симулировать в 3D-сценах.

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

Влияние на производительность

Чтобы выяснить, как включение тех или иных опций сказывается на производительности, мы воспользовались игровым бенчмарком Heaven DX11 Benchmark 2.5. Все тесты проводились на системе Intel Core2 Duo e6300, GeForce GTX460 в разрешении 1280Ч800 точек (за исключением вертикальной синхронизации, где разрешение составляло 1680Ч1050).

Как уже упоминалось, анизотропная фильтрация практически не влияет на количество кадров. Разница между отключенной анизотропией и 16x составляет всего лишь 2 кадра, поэтому рекомендуем ее всегда ставить на максимум.

Сглаживание в Heaven Benchmark снизило fps существеннее, чем мы того ожидали, особенно в самом тяжелом режиме 8x. Тем не менее, поскольку для ощутимого улучшения картинки достаточно и 2x, советуем выбирать именно такой вариант, если на более высоких играть некомфортно.

Тесселяция в отличие от предыдущих параметров может принимать произвольное значение в каждой отдельной игре. В Heaven Benchmark картинка без нее существенно ухудшается, а на максимальном уровне, наоборот, становится немного нереалистичной. Поэтому следует устанавливать промежуточные значения moderate или normal.

Для вертикальной синхронизации было выбрано более высокое разрешение, чтобы fps не ограничивался вертикальной частотой развертки экрана. Как и предполагалось, количество кадров на протяжении почти всего теста при включенной синхронизации держалось четко на отметке 20 или 30 кадров/с. Это связано с тем, что они выводятся одновременно с обновлением экрана, и при частоте развертки 60 Гц это удается сделать не с каждым импульсом, а лишь с каждым вторым (60/2 = 30 кадров/с) или третьим (60/3 = 20 кадров/с). При отключении V-Sync число кадров увеличилось, однако на экране появились характерные артефакты. Тройная буферизация не оказала никакого положительного эффекта на плавность сцены. Возможно, это связано с тем, что в настройках драйвера видеокарты нет опции принудительного отключения буферизации, а обычное деактивирование игнорируется бенчмарком, и он все равно использует эту функцию.

Если бы Heaven Benchmark был игрой, то на максимальных настройках (1280Ч800; AA 8x; AF 16x; Tessellation Extreme) в нее было бы некомфортно играть, поскольку 24 кадров для этого явно недостаточно. С минимальной потерей качества (1280Ч800; AA 2x; AF 16x, Tessellation Normal) можно добиться более приемлемого показателя в 45 кадров/с.

Читайте также: