Игры, разработка и индустрия

Краткая история текстур в 3D играх от Райана Бенно

Он рассказал в Твиттере историю использования текстур в 3D играх. Райан был главным художником окружения в Insomniac Games, делал Spider-Man для PS4 и работал в компаниях Telltale и Infinity Ward.

Рендер в реальном времени против пре-рендера

Отрисовку текстур более привычно для специалисты называют рендером. Большинство игр рендерят текстуры в реальном времени, а пре-рендер требует отрисовку на один кадр. Они значительно отличаются по качеству.

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

Запекают текстуры долго, иногда одно изображение занимает дни вычислений. Этот метод используют в фильмах, но в играх каждую секунду меняются 30-60 кадров — разработчики придумывают трюки, чтобы сделать картинку красивой.

Игра Star Fox для 16-битных консолей — ранний пример рендеринга в реальном времени. В то же время вышла Donkey Kong Country, в которой трехмерных персонажей отрисовали заранее, а затем перевели в анимированные изображения с упрощенной цветовой палитрой.

В 1996 году у консолей N64 и PS1 были значительные ограничения на графику. Нельзя было использовать тени в реальном времени, нельзя имитировать материалы, нельзя симулировать рельеф и менять разрешение геометрии и текстур.

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

В The Legend of Zelda: Ocarina of Time и Crash Bandicoot тень запекали в текстуру, чтобы сделать реалистичное окружение.

Художники выдумывали способы обхода ограничений, улучшали приемы. В 2019 году в некоторых играх по-прежнему закладывают информацию об освещении в текстуры (это называют «картой теней»).

Технологию улучшили в поколении консолей Playstation 2, Xbox и Gamecube. Увеличили разрешение текстур и карты теней. В 2001 году в Silent Hill 2 использовали отрисовку освещения в реальном времени, поэтому из текстур убрали тени — но так делали в меньшестве игр.

Разрешение текстур и карты теней определили курс поколения. Увеличилось количество деталей в графике, но рельеф ("bump mapping") и зависимые от материала отражения делали редко.

Из-за ограничений технологий, в текстуры продолжали запекать тени, рельеф и материалы. Глаза, волосы и кожа могли выглядеть правдоподобно, а остальное – нет. Карта рельефа появилась к концу поколения только на Xbox.

Карты рельефов и отражений появились в играх Halo 2 и Doom 3.  Карта отражений помогала сделать отражения света на объекте каким оно должно быть — металл сверкал, ткань распыляла свет. Карта рельефов, которую называют картой нормалей, задавала объём деталей на текстурах — так на плоской поверхности свет отрисовывался как на объёмной.

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

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

Поколение Playstation 3 и Xbox 360 заменило нарисованные текстуры на составные. Разрешение увеличилось — детали, свет, рельеф в играх отрисовывали в реальном времени.

В демо Unreal Engine 3 из 2005 года показали предварительное вычисление окружения. Это изменило работу художников ещё до выход Xbox 360.

Демонстрация Unreal Engine 3 в 2005 году

Ещё в 2005 представили Ambient occlusion — технология имитирует затенения в объектах. Отрисовка в реальном времени оставалась затратной, поэтому художники закладывали AO в текстуры.

Даже в 2019 году не используют полную отрисовку Ambient occlusion в реальном времени. Технологию улучшили с появлением техник SSAO и DFAO, но заранее отрисованные затенения останутся до появления технологий лучше.

Ambient Occlusion в Unreal Engine 4

Суммируя, на Playstation 3 и Xbox 360 появились тени высокого разрешения и рендеринг в реальном времени. Из недостатков — низкополигональные модели и текстуры низкого разрешения.

Вдобавок, текстуры поддерживали только одну карту отражений. Материалы не выглядели правдоподобно, а сложные объекты приходилось разделять на отдельные модели с собственными картами текстур — так сделали в Bioshock: Infinite.

Позднее карту отражений ("reflection mapping") разделили на две части: карту с информацией о материале (дерево. золото, бетон) и карту, которая задаёт «возраст» материала (новая, потёртая).

Появиление разделения совпало с новой техникой отрисовки освещения — физической, Physically Based Rendering (PBR). Pixar популяризировала PBR и внедрила стандарт создания правдоподобных материалов с ней. PBR можно использовать в реальном времени. В 2019 году технику используют во многих играх.

Вдобавок, в индустрии приняли практику применения пост-эффектов, которые появились в предыдущем поколении. Пост-эффекты изменяют внешний вид без изменения текстур.

Техники отрисовки из старых времён используют в 2019 году. Blizzard в World of Warcraft стилизует текстуры используя карту теней в текстурах. Компания совмещает технические ограничения с сильным художественным исполнением. Может в Blizzard не используют много текстур, как другие крупнобюджетные игры, но результаты впечатляют.

Иногда внедрение новых техник откладывают. Современные игровые движки помогают применять их проще, а значит раньше.


От редакции. Ещё в играх используют MegaTextures — это гигантская текстура размером 32,768 на 32,768 пикселей. Она покрывает все полигоны на карте и ландшафт. Кроме того, текстура содержала информацию, какие звуки должны были воспроизводиться в том или ином месте. Это позволило Enemy Territory: Quake Wars стать одной из самых детализированных игр 2007 года.

В современных играх используют похожую на MegaTextures технологию. Например, в Danger Zone для Counter-Strike: Global Offensive на новой карте dz_sirocco используют большую текстуру, но она меньше MegaTextures.

Отрисовка текстур в старых играх

Серия роликов DF Retro посвящена техническому исполнению графики в старых играх — 73 видео, от Resident Evil 2 до SNES.

Поделиться Twitter/ FB/ VK/ скопировать ссылку