История 3D-текстурирования в видеоиграх.

12-May-2019

   Старший художник окружения Insomniac Games Райан Бенно рассказал об истории 3D-текстурирования в играх. Он привёл множество примеров того, какие проблемы возникали у разработчиков на протяжении всего пути, а также показал, как художники смогли справиться с множеством ограничений.

 

   Сперва немного об основах: рендеринг в реальном времени против пререндера. Первое используется в большинстве 3D-игр, и с помощью этого способа железо создаёт изображение в реальном времени. Пререндер требует много вычислительной мощности и времени, чтобы сделать один кадр.

 

   Из-за этого получаются сцены с разным уровнем качества. Из-за интерактивности в играх нужна обработка в реальном времени. А статические элементы, например, синематики или статические фоны, могут быть созданы заранее. Различия между ними были ошеломляющими. Ниже представлен пример из Final Fantasy IX, которая вышла в 1999 году. Можно сравнить, насколько отличаются по качеству заранее отрендеренный фон и персонаж, обработанный в реальном времени.

 

   Пререндер позволяет использовать множество затратных функций, из-за которых обработка одного кадра может растянуться на несколько часов или дней. И это нормально для изображений или фильмов. Но игры должны поддерживать скорость рендера в 30-60 кадров в секунду.

 

   С одной стороны был Star Fox, как ранний пример 3D в реальном времени на 16-битных консолях, а с другой Donkey Kong Country, в которой использовался предварительно отрендеренный CG, преобразованный в спрайты (с сильно упрощённой цветовой палитрой). Долгое время отрисовка в реальном времени на могла достичь подобного результата.

 

   После появления подходящих 3D-консолей, например Nintendo 64 и PS1, стало понятно, чего в режиме реального времени не получится сделать. Нельзя было использовать источники света для запекания теней и света на сцене; не было отклика материала; отсутствовал bump mapping; а геометрия и текстуры были низкого разрешения. И художникам приходилось обходить эти ограничения.

 

   В некоторых случаях информация об освещении (тени, блики, глубина) помещалась прямо в текстуры. Тени игроков обычно были простыми текстурами, которые следуют за персонажем. В то время не было возможности отбрасывать правильные тени.

 

   Тогда можно было получить базовый шейдинг на моделях, но обычно информация об освещении была неправильной. Такие игры, как The Legend of Zelda: Ocarina of Time или Crash Bandicoot, использовали много информации об освещении в своих текстурах и отрисовке вершин на геометрии. Это было сделано, чтобы определённые области выглядели более светлыми, тёмными или окрашенными в определённый цвет.

 

   В то время была проделана огромная творческая работа по преодолению этих ограничений. Рисование или размещение информации об освещении в текстурах до сих пор применяется на разных уровнях. Но по мере того, как рендеринг в реальном времени становится лучше, всё меньше приходится использовать подобные техники.

 

   Следующее поколение консолей PS2, Xbox и Gamecube попытались решить некоторые из этих проблем. В первую очередь улучшения коснулись разрешения текстур и освещения.

 

   Silent Hill 2 была одной из определяющих игр. Самым большим прорывом 2001 года стало использование теней в реальном времени. Некоторая информация об освещении, которую раньше помещали в текстуры, могла быть удалена, но для большей части игр этого поколения они всё ещё активно использовались.

 

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

 

   Это была ещё одна причина, по которой запекание информации в текстуры всё ещё было распространено. В пререндере это не было проблемой: ткань, стекло, волосы и кожа выглядели правдоподобно. У рендеринга в реальном времени такого не было. Но под конец поколения ситуация немного изменилась на Xbox.

 

   Карты бликов и карты нормалей появлялись в таких играх, как Halo 2 и Doom 3. Карты бликов позволили поверхностям реагировать на свет более реалистично — металл стал блестящим и так далее. Нормали позволили добавить больше деталей в объекты с низким количеством полигонов.

 

   Карта нормалей — это тип bump mapping, который позволяет поверхностям реагировать на свет с большей детализацией. Это важная технология, используемая практически во всех моделях вплоть до современности.

 

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

 

   До этого множество текстур либо раскрашивались вручную, либо сшивались вместе в Photoshop, либо совмещали эти подходы. С наступлением эпохи Xbox 360 и PS3 этот способ создания текстур ушёл в прошлое, так как качество ассетов возросло с увеличением разрешения.

 

   Также стало понятно, как работают материалы с пререндерным шейдингом. Это изменило правила игры для многих художников — материалы стали намного сложнее, чем раньше. Это демо 2005 года отличалось от всего, что было на тот момент. Xbox 360 ещё даже не вышла.

 

 

   Также в то время появился новый способ освещения сцены — ambient occlusion. Это было слишком затратно для рендеринга в реальном времени, поэтому художники просто добавили его в текстуры. АО воссоздаёт непрямые тени от света.

 

   Даже сегодня АО не на 100% обрабатывается в реальном времени. Во многом стало лучше, благодаря SSAO или DFAO. Запечённые карты AO всё ещё используются сегодня, но, вероятно, когда-нибудь исчезнут, так как рендеры станут ещё лучше.

 

 

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

 

   Но были и некоторые недостатки: низкое разрешение моделей и текстур, новые шейдеры, которые требуют большого количества ресурсов и так далее.

 

   Другой проблемой была карта бликов. Тогда на один объект была одна карта того, насколько «блестящим» он был. Из-за этого материалы не воспринимались реальными. Поэтому некоторые разработчики начали разделять карты бликов. Такое было, например, в Bioshock Infinite.

 

   Карты бликов после этого стали разделяться, например, на тип материала (дерево, золото, бетон и так далее) и его состояние (царапины, износ и так далее). Это совпало и с появлением нового типа модели шейдинга — Physically Based Rendering (PBR).

 

   PBR стал стандартом для многих игр. Техника, популяризированная Pixar, стандартизировала способ создания правдоподобных материалов в компьютерной графике. И это может быть применено в режиме реального времени.

 

   Кроме того, появились и дополнительные улучшения, например, tone mapping и color grading. На предыдущем поколении потребовалась бы целая вечность корректирования текстур, чтобы добиться таких эффектов.

 

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

 

 

 

Thanks for the information:  threadreaderapp.com

                                               twitter.com

                                               dtf.ru

Tags:

Share on Facebook
Share on Twitter
Please reload

Избранные посты

League of Legends | Сезона 2020

10/01/2020

1/10
Please reload

Недавние посты
Please reload

Поиск по тегам