Аннотация: В докладе исследуется развитие и история игровой графики от истоков по настоящее время. Рассматриваются перспективы развития графики в играх, использование новых подходов и технологий. Современная игровая графика достигла невероятного фотореализма, что является заслугой как мощного аппаратного обеспечения, так и опытных специалистов, которые отлично знают оптические особенности реального мира и понимают ограничения технологий.
Ключевые слова: игровая графика, 3D-графика, компьютерные игры, полигональная сетка, трассировка лучей, фотограмметрия, визуальные эффекты
Современная игровая графика достигла невероятного фотореализма. Если сравнить скриншот из современной игры и реальную фотографию, может возникнуть сомнение, какое изображение настоящее, а какое — компьютерное. И это заслуга не только мощного железа, которое может выдать такую картинку, но и опытных специалистов, которые отлично знают оптические особенности реального мира и понимают ограничения технологий.
Игровая графика прошла длинный путь от абстрактных геометрических фигур до современных высоко полигональных моделей. Очевидно, что ключевое место в улучшении графики сыграло постепенное развитие железа, но от этого зависело далеко не всё. Параллельно художники искали и пробовали разные стили: вдохновлялись мультипликацией, комиксами, упрощали 3D-модели, добавляли видеовставки, а иногда и уходили и ностальгический даунгрейд. И аудитория поддерживала разработчиков в их поисках.
В докладе разбираются основные вехи развития графики в видеоиграх, описание технологий, которые влияли на этот процесс, появившихся в инди-индустрии.
Первые прототипы игр появились ещё в ранние годы существования компьютеров. У них не было экранов, поэтому информация выводилась с помощью лампочек. Примерно так работала одна из первых компьютерных игр в истории — Nimatron, созданная в начале 1940-х годов на основе правил настольной игры «ним».
В 40-е и 50-е годы компьютеры не выходили за пределы научно-исследовательских лабораторий и выставок, поэтому у игр не было ни единого шанса стать массовым развлечением. Но постепенно технологии совершенствовались, и средства вывода информации всё больше стали напоминать привычные экраны.
Важным шагом на этом пути стала игра «Крестики-нолики», которая выводила информацию с помощью электронно-лучевой трубки — она формировала игровое поле размером 35*15 точек. Игра появилась в 1952 году, но никто за пределами Кембриджа её не увидел.
Через шесть лет, в 1958 году, появилась игра «Теннис для двоих», экраном которой выступал осциллограф. Функция экрана в игре была предельно утилитарной: ни одного лишнего элемента — только поле и сам «мячик». Даже ракетки не отображались.
Следующим заметным шагом стала игра Spacewar! (1962) для компьютеров PDP-1. На первый взгляд кажется, что графика мало изменилась по сравнению с предшественницей, но это не совсем так. ЭЛТ-дисплей мог отображать до 20 тысяч точек в секунду, что позволяло не только показать главные игровые элементы, но и добавить побочные. Например, фон из звёзд, который не влияет на геймплей, но создаёт антураж космического сражения. Именно Spacewar! стала одной из первых игр, в которых графика — это выразительное средство, поддерживающее фантазию игроков, а не просто функциональный инструмент вывода информации.
Начиная с 1970-х годов, игры постепенно становились более доступными. Появились первые коммерческие игровые приставки и аркадные автоматы. Большим прорывом стала приставка Magnavox Odyssey, которая подключалась к телевизору. Но графика на ней оставалась предельно простой — это всё ещё было монохромное изображение, состоящее из нескольких геометрических фигур.
Несмотря на скудность графики, разработчики постарались обойти эти ограничения внешними приспособлениями. Так, поверх экрана телевизора можно было повесить пластиковые накладки, которые добавляли игровое поле — были варианты с полем для хоккея, футбола, бейсбола, игры в «Кошки-мышки» и так далее.
Другим важным рубежом стало появление цветной графики. Ранние компьютеры имели совсем небольшие объёмы оперативной памяти, поэтому графическая информация не должна была занимать слишком много места. Для монохромных игр было достаточно одного бита, для 16 цветов — четырёх битов, а восемь бит позволяли увеличить количество цветов сразу до 256 [1].
В конце 70-х и начале 80-х персональные компьютеры всё ещё были роскошью. Зато подскочила популярность аркадных автоматов. Там же появились и первые цветные игры, потому что у автоматов хватало памяти для отображения цвета.
Появление цветной графики стало очередным витком развития игр. Дело было не только в эстетике: это влияло на весь игровой процесс. Например, в Pac-Man каждый призрак обладал уникальным поведением, а цвет помогал отличать одного от другого.
Для создания движущихся объектов в играх применялись спрайты — двумерные изображения [2]. В Pac-Man сам герой и его противники — это спрайты. Сейчас такие изображения можно рисовать в разных графических редакторах. Но 40 лет назад разработчикам приходилось идти на всевозможные ухищрения, чтобы перенести рисунок в цифровой формат.
Например, изображения для Super Mario Bros. приходилось сперва рисовать на целлулоиде, раскрашивать, а лишь затем оцифровывать. Если для этой игры размеры листов были средними, то для Punch Out!! (1983) приходилось использовать листы размером со стол.
С развитием технологий и ростом популярности видеоигр стали появляться более мощные игровые приставки. Сперва на рынок вышли 8-битные консоли, поддерживающие до 64 цветов, а следом и 16-битные консоли с палитрой из 512 цветов. Несмотря на такое развитие, технические ограничения давали о себе знать. К примеру, на игровой консоли SNES из 512 доступных цветов одновременно на экране можно было использовать только 64.
Вместе с этим в играх начали появляться разные визуальные эффекты. Super Speed Racer (1979) привнесла скроллинг, благодаря которому окружение перемещалось сверху вниз и создавало ощущение движения. Эффект параллакс-скроллинга в двумерной Moon Patrol (1982) делал так, чтобы при движении объекта дальний план передвигался медленнее переднего, из-за чего возникала иллюзия глубины пространства и корректной перспективы. А Zaxxon (1982) показала, какими могут быть изометрические игры с иллюзией свободного передвижения по трёхмерному пространству.
В первой половине 90-х стало появляться всё больше 3D-игр. Первые трёхмерные проекты возникли ещё в середине 70-х, но тогда они не стали популярными. Со временем ситуация изменилась.
В основе 3D-моделей лежит полигональная сетка — набор треугольников, которые определяют форму объектов. Если закрасить треугольники, то получится непрерывная поверхность. Затем на получившуюся форму можно «натянуть» текстуру — изображение, пиксели которого привязываются к вершинам полигонов.
Значимым шагом для популяризации 3D-графики стал релиз Wolfenstein 3D (1992) и Doom (1993). Несмотря на то, что они позиционировались, как трёхмерные игры, это было не совсем так. Пользователь мог перемещаться по объёмному окружению, но все объекты были сделаны с помощью двумерных спрайтов.
Особенность движка этих игр заключалась в том, что он использовал метод рейкастинга, что позволяло рассчитывать только те поверхности, которые видны пользователю. Это позитивно сказывалось на производительности, поэтому Wolfenstein 3D и Doom могли запускаться на самых разных компьютерах.
Для создания реалистичной картинки важна корректная модель освещения [3]. Но у ранних компьютеров не хватало на это вычислительных ресурсов, поэтому разработчики искали другие способы решения проблемы. Например, они «запекали» освещение в текстурах — тень создавалась не в реальном времени, а уже была «нарисована» на модели.
Во второй половине 1990-х, как и в любое другое время, развитие графики не шло по какому-то одному пути. Многое зависело от технологий, которые были в распоряжении у компаний. Если на персональных компьютерах графика развивалась плавно и постепенно, то на консолях этот процесс происходит рывками — поколения приставок обновлялись раз в несколько лет. Именно поэтому некоторые визуальные особенности присущи только определённым консолям. Например, в играх на PlayStation у всех 3D-объектов было специфическое «подёргивание» при любых движениях или смене ракурса.
В начале 2000-х широкое применение получил метод затенения по Фонту, при котором грани полигонов сглаживаются, а на некоторых поверхностях появляются блики.
Появилась технология антиалламина, которая сглаживает «лесенки» на краях объектов.
Стало применяться рельефное текстурирование. Оно визуально усложняет строение объектов и имитирует неровности, но при этом не добавляет полигонов.
К 2007 году появилась модель затенения ambient occlusion, улучшающая освещение. С её помощью можно рассчитать интенсивность света, доходящего до поверхности.
Разработчики начали применять технологию HDR, которая расширяет диапазон яркости — на экране одновременно отображаются как очень тёмные, так и очень светлые участки сцены [4].
В 2010-х года прогресс в развитии графики замедлился: если раньше прорывы случались раз в пару лет, то сейчас это происходит значительно реже. Качество картинки в крупных высокобюджетных играх стало по-настоящему впечатляющим и приблизилось к фотореализму, хоть скриншоты до сих пор и сложно перепутать с реальными фотографиями.
Последнее поколение консолей вывело стандарты графики на новый уровень, пусть и не настолько сильно, как в предыдущие годы. Так как качество графики в ААА-играх поднялось примерно до одного уровня, студии переключили внимание на проработку отдельных аспектов, улучшающих общее впечатление от графики.
Последний наиболее значимый прорыв в области графики — появление видеокат, которые поддерживают трассировку лучей. Эта технология позволяет имитировать реальное поведение лучей света, отражающихся от объектов.
Для создания моделей и текстур начали применять метод фотограмметрии — разработчики фотографируют реальный объект с нескольких ракурсов, соединяют в программе, а затем из получившегося облака точек создают модели.
На момент написания этого доклада AMD, Intel и Nvidia работают вместе с университетами и игровыми компаниями по всему миру ищут новые способы повышения производительности и качества графики. Вместо десятилетий разработки новых алгоритмов, пока они не станут пригодными для игр, теперь требуется всего несколько лет, а иногда несколько месяцев.
Следующие несколько поколений видеокат будут похожи на нынешние, только с большим количеством шейдеров и коша. Десять лет назад лучшие видеокатры содержали примерно 3,5 млрд транзисторов, а теперь у них 76 млрд нано размерных транзисторов с вычислительной мощностью FP32 в 25 раз больше.
Это огромное увеличение числа транзисторов нужно не только для ускорения обработки. Современные графические процессоры содержат на своём кристалле всё больше устройств, специализирующихся на трассировке лучей и приложениях искусственного интеллекта.
Так что можно сделать вывод что эти две области будут доминировать в развитии 3D-графики. Одна делает всё более реальным, а другая более играбельным.