Смерть «графона»: как PC лишили превосходства над консолями

Пока NVIDIA выпускает всё более дорогие видеокарты, а AMD занимается ребрендингом бюджетного сегмента, в Интернете бушуют споры. Где «графон» и кто виноват в его отсутствии? «Пека-бояре» с разнообразием железа, под которое сложно оптимизировать игры, или «консоле-холопы» со стабильными, но относительно скромными аппаратными возможностями? Как водится, для полного понимания проблемы нужно вернуться к её истокам: в те ужасные времена, когда видеокарта на PC лишь выводила изображение на монитор, а играли все на простеньких приставках.

Тёмные времена

До 1995 года каждый производитель видеокарт (а их было около десятка, а не два с половиной, как сейчас) имел собственную графическую библиотеку. И никаких вам OpenGL и DirectX с тотальной унификацией. Как работали игры в то время? Центральный процессор обрабатывал львиную долю информации, а видеокарта занималась простейшими операциями и выводила готовый кадр на монитор.

Ситуация изменилась с появлением видеоускорителей Voodoo от компании 3dfx (ныне покойной) и ростом популярности технологии DirectX для Windows. Тогда же, в середине 90-х, игры обзавелись продвинутыми настройками графики.

В простейшем случае основную нагрузку, как и прежде, обеспечивал ЦП. Такой метод отрисовки назывался «программным», и многие геймеры познакомились с ним благодаря оригинальной DOOM. Низкое разрешение, крупнопиксельная картинка, чёткие, но зубчатые края у объектов.

Если же имелась дорогущая Voodoo, можно было задать соответствующий режим отрисовки (Glide API). И насладиться такими визуальными изысками, как полупрозрачные и отфильтрованные текстуры, примитивные вершинные шейдеры (зачатки динамической системы освещения) и полноэкранное сглаживание. Разница получалась о-го-го!

Слева — скромненький софтверный рендеринг, справа — Glide, вызывавший в 90-е восторг и трепет

 

Гонка версий API

С развитием Windows и ростом популярности PC-платформы доминирующим API стал DirectX. Но в ряде проектов поддерживались «открытый» OpenGL и тот же Glide — он был не нов, но практически нулевое влияние API на производительность выгодно выделяло его на фоне новомодных технологий чуть ли не до середины нулевых. За это время видеоускорители научились работать со сжатыми текстурами и альфа-каналами. Появились различные шейдерные модели и отдельные технологии, позволявшие всё больше разгружать CPU и озадачивать видеокарту.

Первая Half-Life умела использовать три режима отрисовки: программный, OpenGL и Direct3D

Из года в год новые поколения видеокарт давали доступ их владельцам к передовым технологиям, а те, в свою очередь, — к спецэффектам совершенно иного класса. Отсюда и огромная разница между «максимальными» настройками, которые могли позволить себе покупатели революционного железа, и «высокими / средними» для простых смертных. Нагрузка тоже отличалась значительно. Подобное деление ярче всего проявилось в Half-Life 2 с её отменной оптимизацией. Шутер поддерживал три различных версии API DirectX. И менял способы отображения объектов в зависимости от начинки ПК и выбранных настроек. Картинка существенно разнилась, но главное — не страдал геймплей.

 

Консоли и их начинка

Мир геймпадов тоже разделил целевую аудиторию на пассажиров первого и второго класса. На рубеже поколений тайтлы, выходившие одновременно на некстгене и пастгене, выглядели по-разному (оно и понятно). Кроссплатформенные хиты зачастую демонстрировали на консолях графические навороты (сглаживание, сложные эффекты с большим количеством частиц, цветовые преобразования), недоступные «пека-боярам» с дешёвыми видеокартами. За это можно сказать спасибо низкоуровневому доступу к железу и постепенному развитию ТВ-дисплеев. В приставочных блокбастерах поддержка широкоэкранного формата 16:9 появилась давно. А на PC она стала стандартом лишь спустя годы, ближе к 2010-му.

Даже Need For Speed: Most Wanted и Carbon не поддерживали widescreen-разрешения на компьютерах. А на консолях — запросто.

С появлением Xbox 360 и PlayStation 3 дистанция между «максимальными» и «средними» настройками начала сокращаться. В это же время произошли два заметных изменения в компьютерной индустрии. Первое: переход от D3D 9.0 и «разделённой» шейдерной архитектуры к унифицированным шейдерам в DirectX 10.1. С одной стороны, он навсегда разделил железо на «устаревшее» и «актуальное», с другой — позволял делать с видеокартой всё, что угодно. Возможность программировать работу GPU так, как необходимо авторам игры, позволила в будущем реализовывать часть возможностей нового API (DX11) методами старого, пусть и с некоторой потерей в эффективности.

Второе изменение было ничуть не менее важным. В игровом железе наконец наступила повсеместная унификация. Речь не только о конструктивных особенностях графических процессоров: сократился и выбор комплектующих. Фактически производителей видеокарт осталось двое (NVIDIA и AMD), рабочих API — тоже пара (DirectX и OpenGL), равно как и стандартов памяти, интерфейсов подключения. Фрагментация значительно уменьшилась, а вместе с ней упростилось и создание игр.

Консольный мир оставался несколько более разобщённым: и «икс-ящик», и «плойка» использовали GPU из «прошлого поколения», пусть и с некоторыми улучшениями. В частности, именно Xbox 360 получил первый GPU с программируемыми шейдерными процессорами (но не полной поддержкой D3D 10). А PS3 обладала огромными скрытыми резервами из-за чрезмерно сложной внутренней архитектуры.

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

 

Эндшпиль

Окончательно единообразие гаджетов закрепилось на рынке с выходом PlayStation 4 и Xbox One. Обе платформы, созданные на базе почти одинаковых технологий, задали «средний» уровень производительности. Владельцы флагманских видеокарт прошлых лет получали те же спецэффекты, что и консольщики. Пользователи с продвинутыми конфигурациями PC могли себе позволить более высокое разрешение или дальность отрисовки. Даже на недорогих ноутбуках GPU умели показывать те же красоты, что и на новомодных приставках. Полная уравниловка! Игры стали прилично выглядеть даже на «минималках». Конечно, текстуры получались не столь чёткие, а сложные эффекты самозатенения либо выглядели попроще, либо отключались вовсе. Зато всем доставался тот же HDR, шейдерная вода, вспышки и отблески света при взрывах.

Сегодня «магия» DirectX 11 переходит к преемнику — DirectX 12, который обеспечивает почти консольный уровень доступа к видеокарте с сохранением достаточного — для простоты программирования — уровня абстракции. Со стороны открытых технологий отвечает API Vulkan — и в проектах, которые создавались талантливыми студиями вроде id Software, он показывает потрясающий результат. Даже мобильные GPU мало-помалу обзавелись современными наборами инструкций и возможностью работы с графикой десктопно-приставочного уровня. Посмотрите на Nintendo Switch: она построена на базе NVIDIA Tegra, но запускает DOOM 2016 года со всеми спецэффектами. Да ещё и отлично тянет Skyrim с HD-текстурами!

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

 

Forza Horizon 3

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

На «ультре» деталей, конечно, чуть больше, но разницы между «высокими» и «средними» настройками почти не видно. А на «минимальных» отключается прожорливый Ambient Occlusion: на скорости его эффектов всё равно не видно, а в статике… да кто вообще в гонке будет стоять на месте?

 

DOOM

id Software умеет в технологию и оптимизацию. Боевик про геноцид чертей на Марсе шустро бегает почти на любых конфигурациях, не теряя визуального великолепия. Характерные для id Tech подгрузки текстур высокого разрешения, правда, никуда не спрячешь.

Но, скажите, так ли они заметны в пылу стремительной битвы? И есть ли разительные отличия между low и ultra?

 

Battlefield 1

Сетевой шутер EA DICE демонстрирует чудеса как на DX11, так и на DX12. Сумеете угадать, на каком скриншоте используется низкоуровневый API, а на каком — высокоуровневый?

Ну и в качестве подтверждения тезиса об усреднённости современной графики. На каких настройках сделан этот снимок?

 

Что дальше?

Индустрия интерактивных развлечений обозначила новый рубеж: запуск игр в 4K-разрешении с приемлемой частотой кадров (30 на приставках, 60 на PC). Ресурсов для этого требуется немерено: нагрузка с ростом разрешения растёт в геометрической прогрессии, для радикального улучшения качества требуются огромные объёмы оперативной и видеопамяти. Плюс высокая пропускная способность оных, мощный графический и центральный процессоры. В общем, текущему поколению консолей нужен апгрейд по полной программе.

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

 

Источник: 4pda.ru