Ростелеком

Что такое сглаживание. Типы сглаживания в играх

Здравствуйте.

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

Подавляющее большинство игроков знают о «лесенках» на краях объектов и возможном решении этой проблемы - «anti-aliasing», или «сглаживание». Очень подробно этот вопрос описан в статье Дона Волигроски (Don Woligroski) Anti-Aliasing Analysis, Part 1: Settings And Surprises (русский перевод). Также неплохое сравнение с примерами игр текущего поколения игровых консолей есть у Digital Foundry - The Anti-Aliasing Effect (англ.) . Вкратце, всё сводится к одному: сглаживание - это здорово, восприятие картинки сильно вырастает в цене, в современных реалиях игропрома продукты с малым сглаживанием или даже без оного находятся в категории освистанных (в первую очередь - фанатами платформ-конкурентов, но тем не менее), но вот реализация качественного сглаживания оставляет желать лучшего, главным образом - из-за недостаточной вычислительной мощности целевого оборудования. В данном случае в гораздо более выгодных условиях оказываются, конечно же, апологеты игры на ПК, т.к. на мощность их железа оказывает влияние только материальный фактор, зато консольщики не упускают случая позубоскалить над ПКшниками на предмет «PC HAZ NO GAEMZ!», мол, игр у вас нет, играете в графику. Я специально не буду затрагивать этот вопрос, потому что рационально-объективных доводов в пользу субъективного ощущения «тёплого лампового гейминга» быть не может в принципе, это вопрос личного выбора со всеми вытекающими. Уже существующие и использующиеся алгоритмы описаны по вышеуказанным ссылкам, поэтому перейду непосредственно к теме: что такое FXAA, с чем его едят и насколько это вкусно.

Начнём с теории. Если быть предельно точным, то FXAA - не такой уж новый алгоритм: впервые он был использован в MMORPG Age of Conan и уже отметился в шутере F.3.A.R., но я буду рассматривать его, как новый, благодаря интересному решению, которое попалось мне на глаза на часто посещаемом форуме (спасибо h0w1er ). FXAA - F ast approX imate A nti-A liasing, это более производительное решение по-сравнению с традиционным MSAA (Multi-Sampling Anti-Aliasing). Это однопроходный пиксельный шейдер, который обсчитывает результирующий кадр на этапе постобработки. Он создан быть более быстрым и менее требовательным к памяти по-сравнению с MSAA, «оплачивая» свои «плюсы» точностью работы и качеством, хотя на самом деле всё не так страшно, как это звучит. FXAA также имеет ряд преимуществ, включая улучшенное сглаживания спекуляров и субпикселей (речь о поверхностях размером меньше одного пикселя, «лесенки» заставляют такие объекты мерцать). В официальном документе (PDF) создатель FXAA Тимоти Лоттс (Timothy Lottes) заявляет, что для алгоритма FXAA с настройками среднего качества («золотая середина» между качеством и производительностью) постобработка кадра разрешением 1920x1200 на GTX 480 занимает меньше миллисекунды. Основные преимущества FXAA, со слов Тимоти, заключаются в алгоритме сглаживания субпикселей FXAA, работающем лучше оного в MLAA , достаточность для работы железа уровня DX9, постообработке кадра за один проход и, по-моему, самое интересное - независимость от используемого GPU Compute API . Но есть и одна неприятность - необходимость для разработчиков встраивать эту технологию сглаживания в свои игры, когда как традиционные методы сглаживания работают (или не работают) на уровне драйверов. Другими словами, пока программисты не используют в своих движках код FXAA для сглаживания, нужного эффекта мы не получим, влючить FXAA извне официально было нельзя. До недавних пор.

А теперь - танцы практика. Практиковаться будет на World of Tank, версия 0.6.6.

Вариант без сглаживания (No AA) показывает явные «эскалаторы», и хоть модели танков достаточно большие и детализированные, артефакты видно совершенно явно, особенно на тонких объектах, о которых дополнительно ниже.

Вариант встроенного сглаживания (Edge AA) пытается смазывать края объектов, но у него это получается довольно посредственно, не говоря уже об уходе картинки в небольшое мыло.

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

Ну и вариант FXAA Sharpen. Gast в версии beta 6 добавил фильтр резкости, взятый из , и результат очень достойный: мыло исчезло, текстуры стали выглядеть даже резче, чем в оригинале, а «лесенок», несмотря на этот фильтр, практически не добавилось. Из-за незапланированной авторами резкости текстуры башни чуть-чуть «выбило» (синяя зона), но в игре, могу вас уверить, это абсолютно незаметно.

А что же с производительностью? Да практически ничего плохого. К сожалению, движок WoT живёт в своём мире и всплески/падения производительности могут выскакивать на самом ровном месте. У меня получилось следующее:

Картинка «In battle no AA» - то, о чём я говорил выше: тонкие деревца трещат от артефактов, тогда как на вариант «In battle FXAA Sharpen» картинки гораздо приятнее глазу, за исключением проблем фильтра резкости, который уж слишком тонкие линии сужает в толщину волоса, как, например, навесной прицел артиллерии. А количество кадров в секунду в варианте FXAA даже выше, несмотря на то, что эти два скриншота сделаны с разницей в 1 секунду и танк был неподвижен.

На самом деле при длительном тесте была получена цифра ~10-12% - на столько падает производительность при использовании FXAA, тогда как MSAA 4x, с качеством сглаживания которого и конкурирует FXAA, в довольно часто даёт падение вдвое больше. Если будет интересны сравнения - больше цифр и картинок можно найти в статье NVIDIA"s New FXAA Antialiasing Technology сайта [H]ard|OCP , где я почерпнул часть информации, а в завершении своего небольшого обзора соглашусь с Марком Уорнером @ HardOCP: при должной реализации у FXAA большое будущее, особенно на консолях, где ресурсы жёстко ограничены, а имея возможность настроить конфигурацию инъекции по своему вкусу, многие уже сейчас без помощи разработчиков, смогут насладиться красивой картинкой в любимой игре.

UPD. На 10 августа уже появилась более настраиваемая инъекция , так сказать, «сборная солянка» от участников обсуждения.

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

Во второй части вы найдёте различные способы оптимизировать некоторые настройки и подобрать оптимальные для вашей системы, исходя из влияния на производительность каждого отдельного параметра, а также сможете автоматизировать процесс настройки игры с помощью специальной программы GeForce Experience для владельцев видеокарт NVIDIA. Все параметры будут идти в том хронологическом порядке,
в каком они представлены во внутреигровом меню настроек русскоязычной версии GTA 5, а это значит, что название каждого параметра будет точно таким, каким оно представлено в игре.

Справка по разделу


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

Часть первая: подробное описание графических настроек

Общие настройки

Видеопамять

А также её используемое количество из доступной. Данный параметр показывает то, сколько потребляет игра в настоящий момент видеопамяти для удовлетворения своих потребностей. Пусть вас не смущает то, что кол-во потребляемой памяти может значительно превышать кол-во доступной. Об этом - ниже.

Игнорировать предложенные ограничения

Во времена GTA 4 многие игроки не могли настроить графику в игре на высокие настройки лишь по той причине, что сама игра не давала им этого сделать, поскольку считала, что если видеопамяти вашей видеокарты не хватает, то бесполезно пытаться что-либо сделать и предлагала в таком случае довольствоваться низкими значениями настроек, лишь бы кол-во используемой видеопамяти не превышало кол-во доступной. Почему? Меры предосторожности во избежание проблем с производительностью, причём, весьма сомнительные. Тогда пользователи сняли это ограничение с помощью специальной команды для файла commandline , сегодня сами Rockstar Games предлагают вам, при наличии головы на плечах самим отключить ограничение на использование памяти. В теории, отключение данного параметра может грозить проблемами с производительностью, поскольку в ситуации, когда доступная видеопамять кончается, игра начинает использовать расширяемую видеопамять, т.е. видеопамять из другого источника - ОЗУ. Так как оперативная память значительно медленнее видеопамяти, могут наблюдаться серьёзные проблемы с прогрузкой текстур или просто с фризами. На практике же, особых проблем замечено не было. Игра отлично себя чувствует, даже если ест памяти в 2 раза больше, чем доступно. Однако, слишком большая разница между доступной памятью и используемой может всё же привести к фризам и серьёзным провисаниям при долгой игре (в среднем, больше часа).

отсутствует

Версия DirectX

Данный параметр позволяет выбирать версию DirectX из трёх вариантов: 10, 10.1 и 11.
Отличия заключаются в том, что при более низкой версии вам перестанут быть доступны некоторые графические эффекты, вроде , и . Данный параметр,
по сути, не так сильно влияет на производительность и разница в FPS на разных версиях минимальна и,
как бы странно ни было, наилучшую стабильность и производительность в большинстве показывает
DirectX 11, хотя, владельцы довольно слабых видеокарт говорят, что переключение на 10 версию может помочь и избавиться от некоторых графичеких артефактов и провисаний, а также немного поднять FPS.
В любом случае, пробуйте менять версию, если вас не устраивает 11-я. Возможно, вам это и поможет.

Влияние на производительность: среднее
Разница в FPS: 8-10 FPS между 10 и 11 версией на устаревших, слабых видеокартах.

Тип экрана

Указывает на то, как отображать игру: в полноэкранном режиме, в окне или в окне без рамки.
Опция не нуждается в особых пояснениях. Лишь отмечу, что некоторым игра в окне может дать лучшую производительность и сократить время загрузки самой игры. Переключиться в полный экран, когда игра работает в оконном режиме, можно с помощью комбинации на клавиатуре Alt+Enter.

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

Разрешение

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

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

Формат

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

Частота обновления

Частота, с которой ваш монитор способен обновлять изображение на экране. Рекомендуется ставить родную частоту монитора.

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

Монитор вывода

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

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

Сглаживание (FXAA, MSAA, TXAA)

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

Первой идёт технология временного сглаживания FXAA , разработанная компанией NVIDIA, которая с успехом применяется в очень многих играх и порой даёт неплохие результаты на ближних к игроку объектах, но дальние планы, как правило, остаются не слишком обработанными и в итоге выглядят не лучшим образом. Это довольно сильно заметно при использовании данного вида сглаживания в GTA 5. Сама реализация оставляет желать лучшего, ибо данный алгоритм работает из рук вон плохо. Лично меня сильнее всего раздражала мини-карта, которая вся была покрыта "лесенками" (искажения по краям объектов или линий, ступенчатость), это буквально резало глаза, поэтому, был найден другой выход с использованием этого сглаживания, так как оно, всё же, даёт самые лучшие результаты по производительности.
Он подробно во второй части данного гайда.

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

Далее представлена эксклюзивная технология временного сглаживания NVIDIA TXAA , которая призвана значительно повысить качество картинки в игре на дальних планах. Стоит отметить, что включение данного типа сглаживания доступно только при включённом MSAA, т.е. эти алгоритмы работают в паре. MSAA вкупе с TXAA способно дать потрясающе чистую картинку, однако, для этого вам потребуется видеокарта топового уровня.

Чтобы оценить различия в работе различных алгоритмов сглаживания, воспользуйтесь нашим интерактивным сравнением (рекомендуется смотреть в масштабе на весь экран):

Сглаживание: TXAA 4X


Сглаживание: MSAA 8X


Сглаживание: MSAA 2X


Сглаживание: FXAA


Сглаживание: Без AA

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

  • FXAA -низкое
  • MSAA - высокое (потребляет много видеопамяти)
  • TXAA - среднее

Разница в FPS:

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

Или V-Sync. Технология синхронизирует FPS в игре с частотой развёртки монитора и позволяет убрать вертикальные искажения (рывки). Весьма полезная функция, т.к. воспринимать изображение становится проще, так как картинка обретает плавность. Многие не любят данную опцию потому, что она ограничивает FPS и якобы сильно убивает производительность. Данное утверждение ошибочно лишь на 50%, поскольку отключение этой функции позволит узнать максимальный FPS, который может выдавать игра на вашем железе, но во время обычной игры отключение данной функции ничего не даст, так как ваш монитор не способен показать FPS выше своей частоты развёртки, а значит, вы ничего не выигрываете, если надеетесь на мониторе с частотой 60Hz увидеть 100 кадров в секунду. Плюс, дело ещё и в анатомии человеческого глаза, который не способен воспринимать такие высокие значения.

Параметр имеет несколько значений:

  • 100% - FPS будет ограничиваться частотой монитора (60Hz - 60 FPS)
  • 50% - FPS будет ограничиваться на 1/2 частоты монитора (60Hz - 30 FPS)
  • Выкл. - FPS не ограничен.

Лично я рекомендую вам включить данную опцию в любом случае. Если у вас очень мощная система и с Выкл. синхронизацией FPS в игре равен 60 и выше, то включите полную синхронизацию, если средний FPS ниже 60, то включите опцию на 50%. В отдельных случаях рекомендуется включить вертикальную синхронизацию вашей видеокарты.

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

Автоматически ставить игру на паузу в фоне

Включение данной опции заставляет игру переводить себя в режим паузы, когда вы сворачиваете игру через Alt+TAB или переключаетесь на другой монитор, если у вас их больше одного. Весьма полезная функция, поскольку это позволяет избежать каких-либо изменений в игровом процессе без вашего отсутствия, т.к. когда любое приложение свёрнуто, оно продолжает работать, даже если окно приложения не активно в данный момент и вам кажется, что никаких изменений не происходит.

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

Населённость города

Данный параметр представляет собой шкалу, заполняя которую, вы можете регулировать количество пешеходов и трафика на улицах Лос-Сантоса и округа Блэйн. Чем больше заполнена данная шкала, тем больше пешеходов и машин вы встретите на своём пути. В отличие от GTA 4, где данный параметр довольно сильно снижал производительность, здесь падения частоты кадров как таковой не ощущается. Обсуждаемая настройка тесно взаимодействует с другими параметрами, такими как: Разновидность населения, Качество частиц, Настройка спецэффектов, Качество отражений и, наконец, Качество теней . Всё дело в том, что пешеходы и трафик являются игровыми объектами, на которые также распространяется действие вышеперечисленных параметров. Учитывая этот факт, самым оптимальным значением для данного параметра будет 75% от общей заполненности шкалы. Такое значение позволит избежать потерь FPS как таковых, ибо разница между 0% и 100% всего около 3-5 кадров в секунду, а теряться они начинают при приближении к макс. отметке. При рекомендованных 75% вы получите оптимальное количество трафика и пешеходов на улице и практически ничего не потеряете в производительности, но опять же, результаты могут отличаться на разных компьютерах, поэтому экспериментируйте, но не бойтесь высоких значений данного параметра.

Влияние на производительность: низкое
Разница в FPS:

Разновидность населения

Очень интересный параметр. Чем? Да тем, что он абсолютно не влияет на производительность, но в то же время потребляет достаточно большой объём видеопамяти. Влияет он на разнообразие пешеходов и трафика в игровом мире. Чтобы вы понимали, как правильно его отрегулировать лично в вашем случае, попробую объяснить вам механизм действия данной настройки: предположим, что всего в игре существует 100 видов транспорта (на деле их больше, это лишь пример) и 50 видов пешеходов (аналогично, это пример). При значении 50% обсуждаемого параметра, в память вашей видеокарты будет загружено 50 видов транспорта и 25 видов пешеходов и далее они будут распределены по всему игровому миру, то есть, в два раза меньше, чем есть на самом деле. Значит ли это, что игра выберет 50 каких-то определённых транспортных средств и будет использовать только их? Нет, это не так. Транспорт будет меняться через определённые интервалы времени, но одновременно наблюдать в одно время в игровом мире вы сможете только 50 этих машин, аналогично с пешеходами. Если вы будете увеличивать параметр Населённость города , то в игровом мире будет увеличиваться кол-во копий из тех самых 50 машин и 25 пешеходов. Надеюсь, понятно?

Сама технология дублирования (копирования) транспорта и пешеходов работает так, чтобы дублировать каждый субъект в игровом мире (1 вид транспорта или пешехода) по 5 раз, дабы сохранять определённый баланс разнообразия на улицах Лос-Сантоса.
Чем больше значение данного параметра, тем больше уникальных пешеходов вы сможете встретить, прогуливаясь по улицам города и тем больше уникальных видов транспорта вы сможете взорвать обогнать, носясь по многочисленных дорогам города. Как уже было сказано прежде, данный параметр очень сильно потребляет видеопамять, но лично я считаю, что если и придётся жертвовать графикой в угоду большей производительности, то лучше пренебречь качеством теней или отражений (основные потребители памяти после текстур), чем разнообразием и насыщенностью игрового мира. Что лучше: находиться в очень красивом (графически) игровом мире, но довольно бедным на население (пустым), или же иметь достаточно живой город и деревню, но с чуть менее впечатляющей картинкой? Решать вам и только вам, но как я уже сказал, данный параметр всё же стоит оставить приоритетным.

Примечание автора: объём видеопамяти на моей видеокарте равен 1 ГБ. Я использую достаточно высокие настройки в целом и качество текстур соответствует значению "Высокая", при этом, обсуждаемый параметр Разновидность населения у меня установлен аналогично Населённости города , т.е. на 75%. Суммарно, игра потребляет 2181 МБ видеопамяти. Не могу сказать, что я испытываю какие-либо серьёзные проблемы в плане производительности в виду такого превышения доступной видеопамяти. Игра работает отлично, даже если объём видеопамяти намного больше доступного. К чему это я? К тому, что не следует бояться данного параметра и стоит оставить его хотя бы на 50%, иначе город начинает довольно ощутимо пустеть, либо же вы встречаете одни и те же машины и одних и тех же пешеходов, ибо игра начинает дублировать их всех по 5 раз. Если у вас объём памяти 2 ГБ, то тогда тем более не стоит ограничивать данную настройку и желательно выставить её процент как можно выше. Экспериментируйте, друзья.

Влияние на производительность: отсутствует (но потребляет много видеопамяти)

Фокусировочная шкала

Она же дистанция прорисовки. Да, я тоже понятия не имею, почему переводчики из 1С назвали данный параметр вот таким странным названием, но всё же, от названия суть параметра не меняется. Влияет данная настройка на дистанцию прорисовки более мелких частей различных объектов во внутреигровом мире.
Надо сказать, что при регулировке данного параметра я не столько не мог понять его смысла из-за названия странного (искал изменения "в фокусе"), сколько из-за того, что каких-либо серьёзных падений в FPS замечено не было. Что при 100%, что при 0%, количество кадров в секунду менялось максимум на 3-5 значений. Вспоминая всё ту же GTA 4, где данный параметр ощутимо влиял на производительность, здесь наблюдается совершенно иная картина. Собственно, всё потому, что сама детализация тех самых мелких частей объектов не так сильно меняется, поскольку в игре по умолчанию установлена очень высокая дистанция прорисовки всей карты. Чтобы всё же найти ту самую разницу при изменении этой интересной во всех смыслах опции, рекомендую воспользоваться следующим интерактивным сравнением:



Фокусировочная шкала: 100%


Фокусировочная шкала: 50%


Фокусировочная шкала: 20%


Фокусировочная шкала: 0%


Влияние на производительность: низкое
Разница в FPS: 3-5 FPS между 0% и 100% соответственно.

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

В принципе, данный параметр не нуждается в особых пояснениях, поскольку всё предельно ясно из названия. Влияет на качество всех текстур в игре. Больше всего потребляет видеопамять. Очень серьёзно потребляет, надо сказать. На производительность никак не влияет, хотя, всё же, разница в 1-2 FPS присутствует, но она настолько несущественна, что не вижу смысла брать её в расчёт. По поводу объёма видеопамяти и значения данной настройки: если у вас 1 ГБ видеопамяти, рекомендуется ставить "Высокая", ибо с качеством текстур "Стандарт" вы тут же забудете, что играете в ПК-версию игры. Текстуры будут как на прошлом поколении консолей. Как уже писалось несколько ранее (вы же всё читаете, верно?), игра работает вполне стабильно и при кол-ве используемой видеопамяти, значительно превышающем доступное. Поэтому, если у вас 1 ГБ - смело ставьте опцию на значение на "Высокая". Если у вас 2 ГБ и более, можете поставить "Оч. выс.". По многичесленным отзывам как российских, так и западных игроков (и не только), можно сделать вывод, что особой разнице в качестве текстур между последними двумя параметрами вы особо не увидите (играя на разрешениях до 1080p при виде от 3-го лица). В случае, если вы играете в 4K разрешении, то тут уже имеет смысл ставить максимальное значение для текстур. Данная опция очень тесно связана с параметром Качество шейдеров , так как в последний входит технология Parallax Mapping , которая очень заметно влияет на соответствующие эффекты для текстур. Так, если у вас качество текстур установлено на значение "Стандарт", то вы не сможете оценить в полной мере работу упомянутой выше технологии. Чтобы вы смогли наглядно оценить различия при разных значениях опции Качество текстур , мы сделали интерактивное сравнение, выбрав в качестве объекта для сравнения парк аттракционов на пирсе:



Качество текстур: Оч. выс.


Качество текстур: Высокая


Качество текстур: Стандарт


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

Влияние на производительность: отсутствует (но потребляет много видеопамяти)

Разница в FPS: 1-2 FPS между "Стандарт" и "Оч. выс." соответственно.

Качество шейдеров

В первую очередь, данная настройка влияет на качество и количество различных источников освещения, на качество текстур (применяется технология Parallax Mapping), на поверхность воды (блики на водной глади и появление водных эффектов), на объёмность и естественность травы и деревьев, на конечный результат анизотропной фильтрации, на солнечные лучи и т.д. Данный параметр, как и многие другие, начинает активно показывать худшие результаты при переходе на значение "Стандарт". Различия между значениями "Высокая" и "Оч. выс." не так сильно заметны, однако, в зависимости от комбинации времени суток и погодных условий вы можете ощутить некую разницу в восприятии игрового мира. Он становится чуть менее "насыщенным" в плане освещения и дополнительной детализации поверхностей. Особенно, подобные изменения очень хорошо чувствуются в пустыне и лесах округа Блэйн, ввиду большого кол-ва поверхностей, где применяется эффект Parallax Mapping и где активно происходит игра света и тени. Чтобы наглядно оценить воздействие данного параметра на качество графической составляющей, вы можете воспользоваться интерактивным сравнением ниже.

В данном сравнении показан результат работы Parallax Mapping. Как я уже говорил прежде, его воздействие особенно заметно в округе Блэйн на поверхностях, подобных этой, где каждый камушек и каждый бугорок может потерять в объёме, что в целом ведёт к снижению ощущений от игры в данной местности. Для слабых и средних компьютеров рекомендуется оставить данный параметр на значении "Высокая" или же "Оч. выс.", пожертвуя 2-3 FPS, т.к. разница при переходе между этими двумя значениями не так высока, а при переходе от "Стандарт" к последним двум упомянутым настройкам, вы можете заметить ощутимое падение FPS.

Влияние на производительность: среднее
Разница в FPS: 6-8 FPS между "Стандарт" и "Высокая", 2-3 FPS между "Высокая" и "Оч. выс.".

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

Данный параметр определяет то, насколько чёткими и детализированными будут тени, а также на то, как они будут взаимодействовать с окружающим миром, когда отбрасываются другими объектами при освещении последних (например, фарами автомобиля). Чем больше значение данной настройки, тем большего разрешения будет карта теней - "текстура" тени, которая генерируется с помощью специального алгоритма и накладывается на поверхность. В следствие этого, сама тень будет обладать большей детализацией и отсутствием "ступенчатости" (результат масштабирования карты теней низкого разрешения). Данная опция вкупе с параметром "Тени высокого разрешения Параметр имеет довольно ощутимое влияние на производительность и использует видеопамять, а значит,
к его настройке следует подойти с особым вниманием. При значении "Оч. выс." вы почувствуете очень существенную потерю в FPS, при этом, качество, в отличие от значения "Высокая" особо сильно не изменится. Такие настройки скорее будут актуальны для игры на разрешениях выше 1080p, вплоть до 4К. Оптимальным же выбором будет значение "Высокая", при этом, родственный параметр "Мягкие тени" следует оставить на значении "Мягко". Это позволит получить ненавязчивые мягкие тени при небольших потерях в производительности. В случае, если вас не устраивает данная комбинация, вы можете поэкспериментировать со значениями параметра мягких теней, поскольку он несёт меньшее влияние на производительность, нежели чем основной параметр "Качество теней".

Влияние на производительность: высокое
Разница в FPS:


Качество отражений

Параметр влияет на детализацию, ясность и точность воспроизведения окружающего мира в отражениях таких объектов, как: кузова машин, различные блестящие и отражающие поверхности, лужи, поверхность воды, стёкла и зеркала (в домах и парикмахерских). Стоит сразу отметить, что обсуждаемый параметр заставит вас рыдать хорошенько подумать над выбором оптимального качества для отражений, поскольку даже на значении "Высокая" последние не внушают доверия и выглядят так, будто прямиком пришли с прошлого поколения консолей. Надо признать, что более менее достойно они выглядеть начинают только при значении "Оч. выс.", при этом не так сильно уменьшая производительность на компьютерах среднего и высокого класса. Владельцам же слабых систем стоит либо старательно избегать встреч с отражающими поверхностями, особенно зеркалами (что в принципе нереально), либо же пожертвовать другими графическими прелестями в угоду сохранения играбельного FPS. Но не буду излишне драматизировать. Чтобы вы сами могли сравнить качество отражений при различных вариантах настройки, мы приготивили интерактивное сравнение.

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

  1. когда применяются в момент формирования и построения сцены.
  2. когда используется фильтр к уже готовому изображению (постобработка).

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


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

Первый тип

Влияние на фпс прямое, в зависимости от метода и пропускной способности видеопамяти.

SSAA (SuperSample Anti-Aliasing , Избыточная выборка сглаживания) - Самое тяжелое, но и самое качественное и жутко нагружающее видеокарту. В ускорителях применяется регулярная маска размером от 2x1 до 4x4. От этого и появляется нагрузка, при разрешении 1920x1440 и маске 2х2 строится кадр с разрешением 3840х2880 (что требует памяти в 4 раза больше), после этого, усредняются цвета всех суб-пикселей в маске и уже после кадр сжимается и подается на вывод на экран в исходном разрешении.
Существовала технология в основном до DirectX 8, пока не появился MSAA. Из-за большого влияния на фпс от него отказались. Но так как мощность видеокарт перманентно росла, NVIDIA его вернули в строй и используется для игр с поддержкой DX9, DX10, DX11.
Хотите 60 фпс? Тогда сами сможете прикинуть под какой нагрузкой будет работать видеоадаптер. Однако, от картинки вы получите наслаждение. Данный метод рекомендуется обладателям производительных видюх для современных игр.

MSAA (MultiSample Anti-Aliasing , Множественная выборка сглаживания) - пришел на смену SSAA, потребляя меньше ресурсов, но и результат дает немного другой. Изображение по-прежнему рендерится в большем разрешении, но производительность достигнута за счет AA только краев объекта, а не всей картинки как в SSAA. Из минусов, на прозрачных полигонах (стекла, вода..) данный метод не работает, поэтому лесенку иногда можно лицезреть. И так как сглаживается только часть изображения, то можно наблюдать еще и артефакты. Плюс несовместимость с методом отложенного освещения. Нужно помнить, что MSAA выгоднее юзать на низких разрешениях. Чем оно выше, тем накладнее по ресурсам. Так же рекомендуется обладателям топовых видеокарт, с большим количеством видеопамяти.

CSAA (Coverage Sampling Anti-Aliasing , Выборка сглаживания с перекрытием)
- это продолжение эволюции SSAA->MSAA->CSAA, который сохранил совместимость с алгоритмами используемых в железе. Улучшение достигнуто за счет того, что в буфер кадра передается еще информация о субсэмпле с соседнего пикселя. Что в итоге помогает рассчитать более качественное сглаживание.
При равных уровнях (4,8..) CSAA и MSAA, качество кадра всегда будет у CSAA выше, а по производительности они друг другу не будут уступать.

Другими словами:
SSAA - сглаживает всю сцену
MSAA - сглаживание происходит только по краям объектов
CSAA - за счет добавления сэмплов перекрытия, сглаживание краев объектов происходит с учетом соседних пикселей. Т.е. тут сделан упор на качество кадра, практически при том же уровне уровне нагрузки на видеокарту, что и у MSAA.

FSAA (Full Scene Anti-Aliasing, Полноэкранное сглаживание) - То же что и SSAA, но от AMD и с небольшими отличиями.

QCSAA (Quality Coverage Sampling Anti-Aliasing , Выборка сглаживания с перекрытием ) - не трудно догадаться, что это улучшенная версия CSAA, только использует вдвое больше сэмплов для анализа

EQAA (Enhanced Quality Anti-Aliasing , Сглаживание повышенного качества) - У NVidia - CSAA, у AMD - EQAA. Отличаются положениями сэмплов и в зависимости от режима их количеством.

AAA (Adaptive Anti-Aliasing, Адаптивное сглаживание) - Как известно у MSAA есть проблема при сглаживании краев на прозрачных объектах. Данный способ призван устранить такую проблему. Является синергией мультисемплинга (MSAA) и суперсемплинга (SSAA). Как можно догадаться, данный вид ресурсоемок и рекомендуется обладателям топ карт. Используется у AMD.

TrAA (Transparency Anti-Aliasing , Прозрачное сглаживание) - тоже что и AAA, только от NVIDIA.

TrAAA (Transparency Adaptive Anti-Aliasing , Адаптивное Прозрачное сглаживание) - см. TrAA

TrMSAA (Transparency Multi-Sampling Anti-Aliasing, Прозрачная множественная выборка сглаживания) - использует краевой метод (MSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TMAA

TrSSAA (Transparency Super-Sampling Anti-Aliasing, Прозрачная полноэкранная выборка сглаживания) -
использует полноэкранное сглаживание (SSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TSAA

OGSSAA (Ordered Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с упорядоченной решеткой) - Классический SSAA в котором используется решетка с упорядоченной выборкой, выровненная по вертикали и горизонтали.

RGSSAA (Rotated Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с повернутой решеткой) - Все тот же SSAA, с уточнением расположения решетки наклоненной под определенным углом. Данный метод показывает качество немного лучше, чем OGSSAA, при почти горизонтальных или вертикальных краях объектов (слегка наклоненных).

SGSSAA (Sparse Grid SuperSampling Anti-Aliasing , Избыточная выборка сглаживания с разряженной решеткой ) - выборки располагаются на регулярной сетке, как в OGSSAA. Но выборка производится лишь на некоторых узлах сетки. Здесь заложен компромиссный подход между производительностью и качеством изображения. Метод используется у NVidia

JGSSAA (Jittered Grid Super-sampling Anti-aliasing, Избыточная выборка с искаженной решеткой) - каждый пиксель так же разбивается на субпиксели, но выборка сэмплов располагается случайно (Стохастическая) или со смещением внутри субпикселя.

HRAA (High-Resolution Anti-Aliasing , Полноэкранное сглаживание для высоких разрешений) - метод полноэкранного сглаживания в NVIDIA с 5-ю сэмплами. Качество как 4xSSAA, по нагрузке как 2xSSAA.

HRAA (Hybrid Reconstruction Anti-Aliasing, Гибридное сглаживание) - решение использующее лучшие практики, на основе краевого метода (MSAA, CSAA), постобработки с аналитикой и временного антиалиасинга.

EDAA (Edge Detect Anti-Aliasing, Краевое сглаживание) - так же краевой метод + обсчитываются контрастные переходы еще и на объектах и текстурах. Что в итоге сильнее садит fps. Условно можно назвать это аналогом CSAA, только от AMD. Это разновидность CFAA, описанного ниже.

CFAA (Custom Filter Anti-Aliasing , Специализированные фильтры сглаживания) - Детище AMD. Включает в себя 4 фильтра: box, narrow-tent, wide-tent, edge-detect. Каждый фильтр, это разный подход к реализации того же MSAA.
box - стандартный подход к MSAA
narrow-tent - аналог CSAA
wide-tent - так же аналог CSAA, только количество субпикселей больше в два раза
edge-detect - при проходе фильтра edge detection по отрендеренному изображению, для определенных им пикселей, которые определяются как границы полигонов или резкие цветовые переходы, используется более качественный метод антиалиасинга с большим количеством сэмплов, а для остальных пикселей с меньшим.

QAA (Quincunx Anti-Aliasing, Шахматное сглаживание) - метод от NVidia, в основе которого лежит учет не только своих субпикселей, но и данные берутся от соседних. При этом, при расчете финального цвета, свой сэмпл имеет вес больше, чем данные с соседних. В расчет берется 5 точек. По качеству 2xQSAA, приблизительно так же выглядит как 4xMSAA.

FAA (Fragment Anti-Aliasing, Частичное Сглаживание) - разработана компанией Matrox. Сглаживание применяемое к краям объектов. Отличие от SSAA и MSAA, в том, что края и сами объекты не увеличиваются в несколько раз по маске. Каждый пиксель делится на 16 частей и если покрытие полное, то пиксель отправляется в кадровый буфер, если неполное, то уходит в отдельный буфер. Такой пиксель считается фрагментированным, при чем в дальнейшем над ним проводится анализ и он видоизменяется. Такая реализация очень сильно экономит ресурсы видеокарты. Но есть и проблема, алгоритм определения краев не всегда корректно обнаруживает те самые края. Проблема с прозрачными объектами во всей красе.

TXAA (Temporal approXimate Anti-Aliasing , Временное приблизительное сглаживание) - технология от Nvidia, которая использует основу MSAA. В формуле расчета используется время, данные по пикселям из предыдущих кадров и данные из обрабатываемой сцены. После чего происходит усреднение по цвету. Это позволяет избавиться от мерцания и дерганья объектов в игре. Вдали дает качественную картинку, однако немного мылит близкие объекты и требования к ресурсам почти как для MSAA, хотя качество при тех же значениях лучше.
Со слов производителя, TXAA 2x сравнимо по качеству с 8xMSAA, но при по затратам производительности сопоставимо как с 2xMSAA, а TXAA 4x выше по качеству чем 8xMSAA, но по затратам производительности сопоставимо как с 4xMSAA. Отлично подходит для сглаживания в динамике.

TSSAA (Temporal Super Sampling Anti-Aliasing, Временная избыточная выборка сглаживания) - Этот метод, что и TXAA, только не привязан к видеокартам NVIDIA и завязана на суперсэмплинг.


Второй тип
Влияние на фпс слабое. Так называемые методы пост-обработки, когда сглаживание происходит в момент вывода изображения на экран.

FXAA (Fast approXimate Anti-Aliasing , Быстрое приблизительное сглаживание) - разработка NVidia. Из названия видно, что это более производительное сглаживание по-сравнению с традиционным MSAA. Алгоритм использует простой способ обнаружения разрыва цветов фигур. В момент вывода изображения на экран усредняются по цвету все соседние пиксели. Это не нагружает видеокарту, но жутко мылит кадр. Далекие и затуманенные объекты в игре будут почти не узнаваемы. Такое сглаживание имеет смысл включать на слабых машинах, ноутбуках, нетбуках и прочих эконом вариантах.

MLAA (MorphoLogical Anti-Aliasing , Морфологическое сглаживание) - условный аналог FXAA. Методика придумана компанией Intel. Алгоритм, ищет пиксельные границы на каждом кадре, похожие на Z, L и U буквы и смешивает цвета соседних пикселей, входящих в каждую такую часть. Алгоритм переведен на использование процессора, а не GPU. Отсюда можно рекомендовать его обладателям слабых видеокарт и с более менее производительным процессором. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA. Имеется реализация у AMD, но технически может использовать и NVidia. Есть проблема: сглаживание не отрабатывает на прозрачных текстурах. Поэтому в довесок этой постобработки нужно подключать еще и TrAA для улучшения изображения. Время обработки занимает 0,9 мс. Так же есть методики MLAA реализованные на GPU.

SRAA (Subpixel Reconstruction Anti-Aliasing , Субпиксельное восстанавливаемое сглаживание) - новый двухпроходный алгоритм от NVidia. SRAA очень схожа с MLAA , но работает с буферами глубины и картами нормалей, из-за чего лучше определяет границы для сглаживания и затененные края. Время выполнения в целом очень низкое, основное время в алгоритме уходит на обработку затенения. На выходе могут появляться артефакты. Для сравнения на сглаживание изображения с разрешением 1280×720 методом SSAA уходит около 5-10 мс, а у SRAA примерно 1,8 мс.

SMAA (Enhanced Subpixel Morphological Anti-Aliasing , Субпиксельное морфологическое сглаживание) - комбо из MSAA/SSAA и MLAA. По сути несколько улучшенный MLAA с добавлением локального контраста и поиском паттернов. Иногда может добавляться еще и временная избыточная выборка. Ресурсов потребляет больше чем MLAA, но задействует при этом видеокарту, а не процессор.
Можно встретить разновидности:

  • SMAA 1x : классический алгоритм SMAA, включающий точный поиск расстояний, работа с локальным контрастом для определения краев, геометрических объектов и поиск диагональных линий. Время обработки занимает 1,02 мс.
  • SMAA T2x : SMAA 1x +техники из TSAA. Время обработки занимает 1,32 мс.
  • SMAA S2x : SMAA 1x +техники из MSAA. Время обработки занимает 2,04 мс.
  • SMAA 4x : SMAA 1x +техники из SSAA/MSAA и TSAA/TMSAA. Время обработки занимает 2,34 мс.

CMAA (Conservative Morphological Anti-Aliasing , Консервативное морфологическое сглаживание) - среднее между FXAA и SMAA 1x. Идеально подходит для слабых и средних графических процессоров. Отличие от FXAA происходит за счет обработки линий краев длиной до 64 пикселей. Используется алгоритм, с обрабатыванием только симметричных разрывов цветов, чтобы избежать ненужного размытия. Отличие от SMAA 1x происходит за счет менее полного сглаживания объектов, т.к. обрабатывается меньше типов фигур и обладает повышенной временной стабильностью, т.е меньше мерцаний объектов.

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

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

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

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

Учитывая объем обрабатываемых данных (а в сцене может быть множество 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.

Учитывая, что за последние несколько лет быстродействие видеокарт заметно увеличилось, как 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 кадров/с.

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

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

Что такое сглаживание?

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

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

Что такое FXAA?

Сразу стоит отметить, что уже достаточно давно игроделами используется технология сглаживания FXAA. Что это такое, тогда еще не знали, но первое его использование встречается в ММО Age of Conan, а также в известном по всему миру шутере F.E.A.R. В этих играх, правда, использовалась только первоначальная версия данного сглаживания, которая на тот момент представляла собой не самое производительное решение.

В наше время в играх используется несколько иной формат FXAA. как Fast approximate Anti-Aliasing, что представляет собой более эффективное решение по сравнению с традиционной технологией MSAA. Это однопроходный пиксельный шейдер, при помощи которого обсчет результирующего кадра осуществляется еще на этапе постобработки. Данный шейдер создавался в качестве более быстрого решения, которое является менее требовательным к памяти в сравнении с вышеуказанными, однако за свои преимущества технология расплачивается точностью работы, а также качеством. Увидев это, многие могут посчитать, что технология неактуальна. На самом деле это не совсем так.

В чем преимущества этого метода?

Сглаживание FXAA отличается целым рядом преимуществ, включая улучшенное сглаживание так называемых субпикселей и спекуляров. В официальном документе разработчик данной технологии Тимоти Лоттс говорит о том, что его продукт с настройками среднего качества осуществляет постобработку кадров разрешением 1920х1200 на основе со скоростью менее одной миллисекунды.

Основные преимущества, которые имеет сглаживание FXAA, заключаются в том, какой именно здесь используется алгоритм сглаживания субпикселей, который работает более эффективно по сравнению с алгоритмом MLAA, что является вполне достаточным для работы оборудования, которое работает на уровне DirectX9. То есть в данном случае осуществляется постобработка в один проход, и самым интересным является полная независимость от того, какой используется GPU Compute API. Однако здесь есть и один минус - разработчики должны эту технологию в обязательном порядке встраивать в различные игры. В то же время традиционные технологии сглаживания работают или же, наоборот, не могут работать на уровне драйверов. Таким образом, пока программисты будут использовать в своих движках метод экспоненциального сглаживания и при этом не будут применять в своих движках код FXAA, невозможно будет добиться необходимого эффекта, так как включить код извне до недавнего времени было невозможно.

Как была решена проблема?

С течением времени было принято решение изначально ввести код FXAA в библиотеку d3d.dl, вследствие чего появилась возможность гибкой настройки результата через различные конфигурационные файлы, а также включение или же выключение FXAA при помощи кнопки . Данный набор файлов изначально копируется в директорию, где присутствует исполняемый файл приложения DX9, а это приложение при запуске будет подхватывать библиотеку, в которой присутствует нужный код. При этом, так как разработчик технологии внедрения данного кода в библиотеку изначально позаботился о том, чтобы результаты работы были помещены в лог, пользователи активно начали определять баги в работе этой технологии, которые достаточно быстро исправлялись. С течением времени появились также «инъекции» с кодом для форматов DirectX 10 и 11.

Как проверить?

Наиболее очевидно определить эффект от того, что используется метод экспоненциального сглаживания и FXAA, можно в игре World of Tanks.

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

В чем проявляются изменения?

После того как включается FXAA tool, результат становится налицо: артефакты полностью исчезают, однако появляется некоторая размытость картинки. Помимо этого, есть также уникальный вариант FXAA Sharpen. Разработчик технологии в одной из версий добавил фильтр резкости, который был взят из MPC-HC, при этом конечный результат оказался вполне приличным: размытости полностью исчезают, текстуры получают еще более резкий вид по сравнению с оригиналом, а «лесенки», несмотря на использование данного фильтра, практически полностью отсутствуют. Теперь вы знаете, что такое FXAA в играх типа World of Tanks. Из-за того что авторы изначально не планировали такую резкость текстуры, могло немного «выбивать» башни, но в игровом процессе это является практически незаметным.

Производительность здесь практически не уменьшается. Конечно, движок World of Tanks работает несколько удивительным образом, поэтому всплески или же, наоборот, падения производительности в конечном итоге могут проявляться буквально из ничего.

NoAA, SMAA или FXAA

Если сравнивать режимы «noAA» или SMAA и «FXAA Sharpen», то картинка значительно изменяется в лучшую сторону в последнем случае. Единственным исключением здесь является используемый фильтр резкости, который чрезмерно тонкие линии сужает еще больше, в частности, это особенно заметно в навесном прицеле артиллерии. При этом количество кадров в секунду в варианте FXAA значительно превышает предыдущий вариант.

В процессе проведения длительных тестов было определено, что при использовании FXAA производительность падает приблизительно на 10-12%, в то время как в случае, если используется метод сглаживания MSAA 4x, качество которого конкурирует на сегодняшний день с технологией FXAA, и вовсе проявляется падение производительности на 50% и более.

Update

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

  • Размытие.
  • Виньетирование.
  • Насыщение цветом.
  • Сепию.
  • И множество других.

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