Найти в Дзене
Stronghold of gamedev

Дорога к реализму

The crew 2
The crew 2

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

Book of dead, Unity, 2018
Book of dead, Unity, 2018

Перед описыванием методов рендера (обработки) картинки в игре, полезным будет понять какими конкретно путями развивалась графика.

Sonic the hedgehog
Sonic the hedgehog

Пропустим этап самых первых черно-белых игр, взглянем на более совершенный пример. Что мешало ежу Сонику выглядеть красивее и детализированнее? Очевидно мощность вычислительного оборудования, SEGA Mega Drive в нашем случае. В отличии от Mario Bros. здесь сложнее разглядеть пиксели, но это возможно. Каждый пиксель для процессора - это координата вида (x,y) в цветовой палитре(которая, кстати, имела всего 256 цветов), устройство могло изобразить более красивую и детальную картинку, но в игре с сверхбыстрым ежиком обязана быть должная скорость обработки.
(
подробнее о рассвете 2д графики и анимации)

Вернемся к 3D измерениям. Разрешение текстур для объектов - важная часть красивой картинки, но не менее важная часть - освещение.

Первые динамичные тени в Tom Clancy's Splinter Cell, 2002
Первые динамичные тени в Tom Clancy's Splinter Cell, 2002

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

The Legend of Zelda : Breath of the Wild , 2017
The Legend of Zelda : Breath of the Wild , 2017

Картинка выглядит насыщенной, правда? Заслуга технологии HDR (High Dinamyc Range), которая в десятки раз расширяет диапазон яркости цветов, в совокупности с правильно настроенным освещением способна делать виртуальные миры красивее нашего.

HDR
HDR

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

В 2004 году начала зарождаться технология PBR (Physically based rendering), активно используемая по сей день технология рендера позволяет значительно увеличить детализацию, не сильно потеряв в производительности.

-7

Использование PBR выгодней изменения геометрии. На этот раз цвета пикселей точечно изменяются не только относительно цвета, но и относительно других карт, соседних к текстуре цвета. Рассмотрим на примере :

Куб без текстур
Куб без текстур

Создадим куб и наложим на него PBR материал, состоящий из нескольких текстур. Заметьте : поверхности куба абсолютно плоские.

Наложим основную текстуру, отвечающую за цвет :

Куб с текстурой цвета (Albedo)
Куб с текстурой цвета (Albedo)

Наложим карту нормалей, которая имитирует рельеф и неровности поверхности :

Куб с текстурой нормалей (Normal map)
Куб с текстурой нормалей (Normal map)

Текстуру металличности, одна из немногих текстур, отвечающих за блеск и отражение света :

Кажется эта плитка стала серьезнее с картой блеска (Metallic map)
Кажется эта плитка стала серьезнее с картой блеска (Metallic map)

Добавим карту преломления света. Особо заметных фишек не добавит, но 4К куб обязан выглядеть навороченным :

Куб с картой Ambient Occlusion
Куб с картой Ambient Occlusion

И вишенка на этом плиточном торте :

Height Map
Height Map

Карта высот. Здесь она способна придать шарм, для примера максимальная степень влияния карты высот :

-14

Итог :

-15

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

-16

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

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

Настройки материала
Настройки материала

Подписывайтесь на канал, в скором времени вас ждет больше статей о устройстве игр простым языком!