Ryan Benno, старший художник по окружению в Insomniac Games, кратко поведал об истории текстурирования в 3D видеоиграх. Мы прошли долгий путь с первых дней использования 3D в реальном времени в домашних консолях, но до сих пор существуют практики, используемые для создания игровых текстур, которые восходят к тем временам.
В треде в Твиттере он делится интересными фактами из истории видео игр.
Давайте начнём с основ: рендеринг в реальном времени и пререндер. Большинство 3D-игр используют первое, когда ваша машина создаёт изображение в режиме реального времени. Пререндер же требует много вычислительной мощности и времени даже на один кадр.
![](https://suvitruf.ru/wp-content/uploads/2019/05/FF.jpg)
Как следствие, на выходе вы получите разные уровни качества. Интерактивность требует обработки в реальном времени. А вот статика (синематики, статичные фоны) может быть отрендерена заранее. Различия были ошеломляющими. Сравните отрендеренный заранее фон и персонажа Final Fantasy IX 1999 года, отрисованного в реалтайме.
![](https://suvitruf.ru/wp-content/uploads/2019/05/render.jpg)
![](https://suvitruf.ru/wp-content/uploads/2019/05/prerender-300x225.jpg)
Пререндер позволяет использовать множество «дорогих» фишек рендеринга, из-за которых обработка одного кадра может растянуться на несколько часов или дней. И это удобно для изображений или фильмов. Но игры должны иметь 30-60 fps.
![](https://suvitruf.ru/wp-content/uploads/2019/05/game_over.jpg)
С одной стороны был Star Fox, как ранний пример 3D в реальном времени на 16-битных консолях, с другой Donkey Kong Country, в которой использовался предварительно отрендеренный CG, преобразованный в спрайты (с сильно упрощённой цветовой палитрой). Долгое время отрисовка в реальном времени на могла достичь подобного результата.
![](https://suvitruf.ru/wp-content/uploads/2019/05/Donkey-Kong-Country.gif)
С появлением подходящих 3D-консолей, таких как N64 и PS1, мы увидели, чего отрисовка в реальном времени не позволяла сделать. Нельзя было использовать источники света для запекания теней или источники света в сцене; не было отклика материала, отсутствовал bump mapping, а геометрия и текстуры были низкого разрешения. Как же художники обошли эти ограничения?
![](https://suvitruf.ru/wp-content/uploads/2019/05/prerender2.jpg)
Кто-то информацию об освещении запихивал прям в текстуры (тени, блики, глубина). Тени игроков обычно представляли собой простую текстуру, которая следовала за персонажем. У вас не было возможности отбрасывать правильные тени.
![](https://suvitruf.ru/wp-content/uploads/2019/05/shadows.gif)
Вы могли бы получить базовый шейдинг на моделях, но он обычно был лишён правильной информации об освещении. Такие игры как The Legend of Zelda: Ocarina of Time или Crash Bandicoot использовали много информации о свете в своих текстурах и отрисовке вершин на геометрии, чтобы области выглядели более светлыми/тёмными или окрашенными в определённый цвет.
![](https://suvitruf.ru/wp-content/uploads/2019/05/OoT-300x225.jpg)
![](https://suvitruf.ru/wp-content/uploads/2019/05/Crash-197x300.jpg)
В то время была проделана огромная творческая работа по преодолению этих ограничений. Рисование или размещение информации об освещении в текстурах до сих пор используется на разных уровнях. Но с ростом возможностей рендеринга в реальном времени подобные старые техники всё меньше используются.
![](https://suvitruf.ru/wp-content/uploads/2019/05/shadows-1024x543.jpg)
Следующее поколение консолей PS2, Xbox и Gamecube попытаются помочь решить некоторые из проблем. В первую очередь улучшения коснулись разрешения текстур и освещения.
![](https://suvitruf.ru/wp-content/uploads/2019/05/Silent-Hill.jpg)
Silent Hill 2 была одной из определяющих игр. Самым большим прорывом 2001 года стало использование теней в реальном времени. Некоторая информация об освещении, которую раньше помещали в текстуры, могла быть удалена, но для большей части игр этого поколения они все ещё интенсивно использовались.
![](https://suvitruf.ru/wp-content/uploads/2019/05/Silent-Hill-2.gif)
Повышенное разрешение позволило улучшить картинку. Из-за большего количества пикселей вы можете хранить в них гораздо больше деталей. Зеркальное отображение было редкостью, т.к. не было надлежащего отклика от материала.
![](https://suvitruf.ru/wp-content/uploads/2019/05/Silent-Hill_2-1024x768.jpg)
Это ещё одна причина, по которой запекание информации в текстуры всё ещё было распространено. В пререндере это не было проблемой: ткань выглядела более реально; cтекло, волосы и кожа могли выглядеть правдоподобно. Реалтайму нужен был толчок. И они получили его в конце поколения (только на xbox).
![](https://suvitruf.ru/wp-content/uploads/2019/05/FF_1-220x300.jpg)
![](https://suvitruf.ru/wp-content/uploads/2019/05/FF_2-230x300.jpg)
Карты бликов и карты нормалей появлялись на сцене в таких играх, как Halo 2 и Doom 3. Карты бликов позволяют поверхностям реагировать на свет более реалистично — металл стал блестящим. Нормали позволяют вам добавить больше деталей в объекты с низким количеством полигонов.
![](https://suvitruf.ru/wp-content/uploads/2019/05/halo-300x167.jpg)
![](https://suvitruf.ru/wp-content/uploads/2019/05/halo_2.jpg)
Карта нормалей — это тип bump mapping, позволяющий поверхностям реагировать на свет с большей детализацией.
![](https://suvitruf.ru/wp-content/uploads/2019/05/materials-1024x273.jpg)
Многие игровые художники меняли способ создания текстур с появлением карт нормалей. С ними вам приходилось тратить значительно больше времени на создание ассетов. Инструменты для скульптинга, такие как Zbrush, стали нормой при создании высокополигональных моделей, запекаемых в текстуру для использования в низкополигональных.
![](https://suvitruf.ru/wp-content/uploads/2019/05/Sculpting-Zbrush-1024x768.jpg)
До этого множество текстур были либо раскрашены вручную, либо сшиты вместе в Фотошопе. С эпохой Xbox 360 и PS3 этот способ создания текстур ушёл в прошлое во многих играх с увеличением разрешения.
![](https://suvitruf.ru/wp-content/uploads/2019/05/D5VQMAJVUAAZf2X-1024x578.jpg)
Мы также поняли, как работают материалы с пререндерным шейдингом. Это изменило правила игры для многих художников. Материалы стали намного сложнее, чем раньше. Это демо 2005 года было непохоже ни на что, виденное в то время. 360 ещё даже не вышла.
Мы также познакомились с новым способом освещения сцены. Ambient occlusion. Это было слишком дорого для рендеринга в реальном времени, поэтому художники просто добавили его в текстуры! АО воссоздаёт непрямые тени от света.
![](https://suvitruf.ru/wp-content/uploads/2019/05/AO.jpg)
Даже сегодня в режиме реального времени АО не на 100% реалтайм, но уже близко! Всё благодаря SSAO or DFAO. Запечённые карты AO всё ещё используются сегодня, но, вероятно, когда-нибудь исчезнут, когда рендеры станут ещё лучше.
Подводя итог, можно сказать, что с эпохой PS3 и X360 мы увидели гораздо более высокое разрешение, чем в предыдущем поколении, и новые текстуры для теней. И конечно же, улучшенное освещение! Вы можете получить тени в реальном времени для всей сцены или запечь освещение для большей детализации.
![](https://suvitruf.ru/wp-content/uploads/2019/05/uncharted2.jpg)
Всё довольно здорово, верно? Ну, были ещё некоторые недостатки: низкое разрешение моделей и текстур, плюс много накладных расходов для новых шейдеров.
![](https://suvitruf.ru/wp-content/uploads/2019/05/mass_effect.jpg)
Другая проблема — карта бликов. У вас была одна карта того, насколько «блестящим» был объект. Материалы не чувствовались реальными. Некоторые люди стали разделять карты бликов. Одни из них — разработчики Bioshock Infinite.
![](https://suvitruf.ru/wp-content/uploads/2019/05/bioshok-3-1024x576.jpg)
Карты бликов теперь могут быть разделены между одним типом материала (дерево, золото, бетон и т. д) и «возрастом» материала (царапины, износ и т. д). Это совпало с новым типом модели затенения, Physically Based Rendering (PBR).
Это привело нас к сегодняшнему дню и нынешнему поколению. PBR стал стандартом для многих игр. Техника, популяризированная Pixar, стандартизировала способ создания правдоподобных материалов в компьютерной графике. И это может быть применено в режиме реального времени!
![](https://suvitruf.ru/wp-content/uploads/2019/05/toys-1024x576.jpg)
Вдобавок ко всему, появились такие вещи, как tone mapping и color grading, были улучшены в текущем поколении. То, на что в предыдущем поколении вы бы потратили целую вечность, корректируя подобные текстуры.
![](https://suvitruf.ru/wp-content/uploads/2019/05/D5VXEB9U0AAduO8.jpg)
В заключение я покажу вам, какие текстуры потребовались бы для создания 3D-игры того времени, и что необходимо для создания одного набора текстур в современной игре.
![](https://suvitruf.ru/wp-content/uploads/2019/05/texture_3-300x184.jpg)
![](https://suvitruf.ru/wp-content/uploads/2019/05/texture_4-281x300.png)
Хотелось бы добавить ещё кое-что. Игры сделаны людьми! Технологии и процессы постоянно меняются, но мы всё равно должны ценить мастеров своей эпохи. Цените историю!