Настройки в играх: с чувством, с толком, с расстановкой. Журналистское расследование: трюки ATi с оптимизацией текстурной фильтрации

Привет всем! Сегодня очень интересная статья о тонкой настройке видеокарты для высокой производительности в компьютерных играх. Согласитесь друзья, что после установки драйвера видеокарты вы один раз открыли «Панель управления Nvidia» и увидев там незнакомые слова: DSR, шейдеры, CUDA, синхроимпульс, SSAA, FXAA и так далее, решили туда больше не лазить. Но тем не менее, разобраться во всём этом можно и даже нужно, ведь от данных настроек напрямую зависит производительность . Существует ошибочное мнение, что всё в этой мудрёной панели настроено правильно по умолчанию, к сожалению это далеко не так и опыты показывают, правильная настройка вознаграждается весомым увеличением кадровой частоты. Так что приготовьтесь, будем разбираться в потоковой оптимизации, анизотропной фильтрации и тройной буферизации. В итоге вы не пожалеете и вас будет ждать награда в виде увеличения FPS в играх.

Настройка видеокарты Nvidia для игр

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

Итак, для того, чтобы попасть в меню управления видеодрайвером, кликайте правой кнопкой мыши по любому месту на рабочем столе и выбирайте в открывшемся меню «Панель управления Nvidia».

После чего, в открывшемся окне переходите во вкладку «Управление параметрами 3D».

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

Итак, первый пункт «CUDA – графические процессоры ». Здесь представлен список видеопроцессоров, один из которых вы можете выбрать, и он будет использоваться приложениями CUDA. CUDA (Compute Unified Device Architecture) – это архитектура параллельных вычислений использующаяся всеми современными графическими процессорами для увеличения вычислительной производительности.

Следующий пункт «DSR - Плавность » мы пропускаем, потому что он является частью настройки пункта "DSR - Степень”, а его в свою очередь нужно отключать и сейчас я объясню почему.

DSR (Dynamic Super Resolution) – технология позволяющая рассчитывать картинку в играх в более высоком разрешении, а затем масштабирующая полученный результат до разрешения вашего монитора. Для того чтобы вы поняли для чего эта технология вообще была придумана и почему она не нужна нам для получения максимальной производительности, я попробую привести пример. Наверняка вы часто замечали в играх, что мелкие детали, такие как трава и листва очень часто мерцают или рябят при движении. Связано это с тем, что, чем меньше разрешение, тем меньше число точек выборки для отображения мелких деталей. Технология DSR позволяет это исправить за счет увеличения числа точек (чем больше разрешение, тем больше число точек выборки). Надеюсь, так будет понятно. В условиях максимальной производительности эта технология нам не интересна так, как затрачивает довольно много системных ресурсов. Ну а с отключенной технологией DSR, настройка плавности, о которой я писал чуть выше, становится невозможна. В общем, отключаем и идем дальше.

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

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

Заранее подготовленные кадры виртуальной реальности . Функция для очков виртуальной реальности нам не интересна, так как VR еще далека до повседневного использования обычных геймеров. Оставляем по умолчанию – использовать настройку 3D приложения.

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

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

Максимальное количество заранее подготовленных кадров . Количество кадров, которое может подготовить ЦП перед их обработкой графическим процессором. Чем выше значение, тем лучше.

Многокадровое сглаживание (MFAA) . Одна из технологий сглаживания используемая для устранения "зубчатости” на краях изображений. Любая технология сглаживания (SSAA, FXAA) очень требовательна к графическому процессору (вопрос лишь в степени прожорливости). Выключаем.

Потоковая оптимизация . Благодаря включению этой функции приложение может задействовать сразу несколько ЦП. В случае, если старое приложение работает некорректно попробуй поставить режим "Авто” или же вовсе отключить эту функцию.

Режим управления электропитанием . Возможно два варианта – адаптивный режим и режим максимальной производительности. Во время адаптивного режима энергопотребление зависит напрямую от степени загрузки ГП. Этот режим в основном нужен для снижения энергопотребления. Во время режима максимальной производительности, как не трудно догадаться, поддерживается максимально возможный уровень производительности и энергопотребления независимо от степени загрузки ГП. Ставим второй.

Сглаживание – FXAA, Сглаживание – гамма-коррекция, Сглаживание – параметры, Сглаживание – прозрачность, Сглаживание - режим . Про сглаживание я уже писал чуть выше. Выключаем всё.

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

С появлением 3D-игр стали появляться проблемы, которых в 2D-играх не было: ведь теперь нужно на плоский монитор вывести трехмерную картинку. Если объект находится параллельно плоскости экрана вблизи его - проблем нет: одному пикселю соответствует один тексель (тексель – это пиксель двухмерного изображения, наложенного на 3D-поверхность). А вот что делать, если объект наклонен или находится вдали? Ведь тогда на один пиксель приходится несколько текселей, и поскольку монитор имеет ограниченное количество пикселей, то цвет каждого приходится рассчитывать из нескольких текселей путем определенного процесса - фильтрации.


Для упрощения понимания представим, что каждый пиксель - это квадратная «дырочка» в мониторе, из глаз мы пускаем «лучи света», а тексели расположены на квадратной решетке за монитором. Если мы расположим решетку параллельно монитору сразу за ним, то свет от одного пиксель накроет только один тексель. Теперь мы начнем отодвигать решетку - что мы получим? То, что наше пятно света от пикселя накроет уже больше, чем один тексель. Теперь повернем решетку - получим тоже самое: пятно от одного пикселя накроет множество текселей. Но ведь пиксель-то может иметь один цвет, и если в него попадает много текселей, то нужен алгоритм, с помощью которого мы будем определять его цвет - он называется фильтрацией текстур.


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


Так что не удивительно, что сейчас такая фильтрация больше не используется.


С развитием видеокарт стала расти их мощность, так что разработчики игр пошли дальше: если брать за цвет пикселя один тексель, то получается плохо. Окей - а давайте возьмем средний цвет от 4 текселей и назовем это билинейной фильтрацией? С одной стороны, все станет лучше - блочность исчезнет. Зато придет враг номер два - расплывчатость картинки вблизи игрока: это получается из-за того, что для интерполяции требуется больше текселей, чем четыре.

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


Окей, сказали разработчики игр - раз 4 текселей мало, возьмем два раза по четыре, и для более точного попадания в цвет будем использовать технологию MIP-текстурирования. Как я уже писал выше - чем дальше от игрока текстура, чем больше текселей будет в пикселе, и тем труднее видеокарте обработать картинку. MIP-текстурирование же подразумевает хранение одной и той же текстур в разных разрешениях: к примеру, если исходный размер текстуры 256х256, то в памяти хранятся ее копии в 128х128, 64х64 и так далее, вплоть до 1х1:


И теперь для фильтрации берется не только сама текстура, но и мипмап: в зависимости от того, дальше или ближе текстура от игрока берется или меньший, или больший мипмап текстуры, и уже на нем берется 4 текселя, ближайшие к центру пикселя, и проводится билинейная фильтрация. Далее берется 4 текселя, ближайших к пикселю, уже исходной текстуры, и опять получается «средний» цвет. После чего берется «средний» цвет уже от средних цветов мипмапа и исходной текстуры, и присваивается пикселю - так и работает алгоритм трилинейной фильтрации. В итоге видеокарту он нагружает несколько больше, чем билинейная фильтрация (нужно обработать еще и мипмап), но и качество картинки оказывается лучше:


Как видно, трилинейная фильтрация серьезно лучше билинейной и уж тем более точечной, но все еще картинка на дальних дистанциях «мылится». И нечеткой картинка получается из-за того, что мы не учитываем то, что текстура может быть наклонена относительно игрока - и именно эту проблему и решает анизотропная фильтрация. Вкратце принцип работы анизотропной фильтрации такой: берется MIP-текстура, установленная поперёк направления обзора, после чего происходит усреднение значений ее цветов с цветом некого количества текселей вдоль направления обзора. Количество текселей варьируется от 16 (для х2 фильтрации) до 128 (для х16). Говоря проще - вместо квадратного фильтра (как в билинейной фильтрации) используется вытянутый, что позволяет более качественно выбрать нужный цвет для экранного пикселя. Так как пикселей на экране может быть миллион и даже больше, а каждый тексель весит не менее 32 бит (32-битный цвет), анизотропная фильтрация требует огромной пропускной способности видеопамяти - десятки гигабайт в секунду. Столь большие требования к памяти уменьшают за счёт сжатия текстур и кэширования, но все еще на видеокартах с DDR-памятью или 64-битной шиной разница между трилинейной и х16 анизотропной фильтрацией может достигать 10-15% fps, но и картинка после такой фильтрации оказывается наилучшей:

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

Анизотропная фильтрация

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

Триленейная

Анизатропная

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

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

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

Шейдеры

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

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

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

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

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.

AA выключено

AA включено

Учитывая, что за последние несколько лет быстродействие видеокарт заметно увеличилось, как 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 г., причем в первую очередь они появились на консолях. На ПК по-настоящему популярной данная техника стала лишь через пару лет, после выхода нашумевшего шутера XIII. С помощью 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 кадров/с.

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

Если судить по информации на форумах и из статей в Интернете, то ATi хитрит с трилинейной фильтрацией текстур на новом графическом процессоре X800. Впрочем, находятся и яростно защищающие ATi. Вообще, подобные дискуссии напоминают нам скандал годовалой давности, связанный с nVidia.

Поводом для столь горячего обсуждения стала статья на немецком сайте Computerbase. В ней было показано, как ATi использует оптимизированную трилинейную фильтрацию текстур, часто называемую "брилинейной" (brilinear) из-за смеси билинейной и трилинейной фильтраций, в графических процессорах Radeon 9600 и X800. Новость действительно стала ошеломляющей, ведь ATi всегда твердила о использовании настоящей трилинейной фильтрации.

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

Будет ли продолжение? Возможно, поскольку спор по поводу недавно открытой брилинейной фильтрации на картах Radeon 9600 и X800 не утихает. ATi следует отдать должное за то, что качество картинки карт визуально не страдает из-за этой фильтрации. По крайней мере, у нас нет примеров, говорящих об обратном. Пока брилинейная фильтрация проявляет себя при искусственно созданных лабораторных условиях. В то же время, ATi не позволяет включить полную трилинейную фильтрацию для упомянутых карт, будь она адаптивной или нет. Из-за новой фильтрации значения производительности в тестах не демонстрируют всего настоящего потенциала X800, поскольку значения FPS получены после оптимизации, влияние которой на скорость оценить сложно. Да и слово "адаптивная" оставляет горькое послевкусие. ATi не предоставила нам информацию о механизме работы драйвера и много раз заявляла, что карта даёт полную трилинейную фильтрацию. Лишь после упомянутого разоблачения ATi признала, что фильтрация оптимизирована. Будем надеяться, что в других местах драйвера подобной "адаптивности" нет.

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

Каждый производитель решает сам, какой уровень качества изображения он будет обеспечивать стандартно. Однако производителям следует документировать используемые оптимизации, особенно если они скрыты от известных тестов, как в свежем примере с ATi. Решение очевидно: дайте возможность выключать оптимизации! Тогда потребитель сможет сам решать, что ему важнее - больше FPS или лучшее качество. На Microsoft, как на третейского судью, рассчитывать тоже не приходится. Тесты WHQL не позволяют определить многие вещи, да и их можно легко обойти: значение слова "адаптивная" вам знакомо?

Известные на сегодня оптимизации фильтрации
ATi nVidia
Трилинейная
оптимизация
R9600
X800
GF FX5xxx
(GF 6xxx)*
Угловая оптимизация
анизотропной фильтрации
R9xxx
X800
GF 6xxx
Адаптивная
анизотропная фильтрация
R9xxx
X800
GF FX5xxx
GF 6xxx
Оптимизация ступени R9xxx
X800
GF FX5xxx
Оптимизация LOD R9xxx
X800(?)

В целом, подобные дискуссии имеют свои преимущества: покупатели и, возможно, OEM-клиенты начинают прислушиваться к проблеме. Мы не сомневаемся, что мания необузданных оптимизаций будет продолжаться. Однако в тёмном царстве появился луч света, что наглядно продемонстрировала nVidia со своей трилинейной оптимизацией. Будем надеяться и на следующие подобные шаги!

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

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

Разрешение экрана

Пожалуй, этот параметр является одним из главных, влияющих как на качество картинки, так и на производительность игры. Данный параметр зависит исключительно от матрицы ноутбука, и поддержки данного разрешения игрой (от 640х480 до 1920х1080). Тут все просто и пропорционально, чем больше разрешение, тем четче картинка и больше нагрузка на систему, и, соответственно, наоборот.

Качество графики

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


Далее мы рассмотрим более детально настройки в играх по отдельности.

Качество текстур

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

Качество теней

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

Качество эффектов

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

Качество окружающей среды

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

Покрытие ландшафта

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

Анизотропная фильтрация

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

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

Сглаживание

Принцип работы сглаживания таков: до вывода картинки на экран она рассчитывается не в родном разрешение, а в двукратном увеличении. Во время вывода картинка уменьшается до нужных размеров, причем неровности по краям объекта становятся менее заметными. Чем больше исходное изображение и коэффициент сглаживания (x2, x4, x8, x16), тем меньше неровностей будет заметно на объектах. Собственно само сглаживание нужно для того чтобы максимально избавится от «лестничного эффекта» (зубцов по краям текстуры).

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

Multisample anti-aliasing (MSAA), в отличие от FSAA, сглаживает только края объектов, что приводит к небольшому ухудшению графики, но при этом экономит огромную часть вычислительной мощи. Так что если вы не обладаете топовой игровой видеокартой, лучше всего использовать MSAA.

SSAO (Screen Space Ambient Occlusion)

В переводе на русский означает «преграждение окружающего света в экранном пространстве». Является имитацией глобального освещения. Увеличивает реалистичность картинки, создавая более «живое» освещение. Дает нагрузку только на GPU. Данная опция значительно уменьшает количество FPS на слабых графических адаптерах.

Размытие в движение

Также известно как Motion Blur. Это эффект, смазывающий изображение при быстром передвижении камеры. Придает сцене больше динамики и скорости (часто используется в гонках). Увеличивает нагрузку на GPU, тем самым уменьшает количество FPS.

Глубина резкости (Depth of field)

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

Вертикальная синхронизация (V-Sync)

Синхронизирует частоту кадров в игре с частотой вертикальной развертки монитора. При включенной V-Sync, максимальное количество FPS равно частоте обновления монитора. Если же количество кадров в игре у вас ниже, чем частота развертки монитора, стоит включить тройную буферизацию, при которой кадры подготавливаются заранее, и хранятся в трех раздельных буферах. Преимущество вертикальной синхронизации состоит в том, что она позволяет избавиться от нежелательных рывков, при резких скачках FPS.

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

Заключение

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