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

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

10 Май, 2019

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

В недавнем приключенческом хорроре Close to the Sun поразил графический антураж. Графика игры практически безупречна — текстуры смотрятся объемно. Как все это достигается, как раз и рассказывается в обзорном материале Хабра. Он, как нельзя кстати…

Для начала давайте немного поговорим об основах — о различиях рендеринга в реальном времени (real time rendering) от пререндеренных (pre-rendered) сцен. Рендеринг в реальном времени используется в большинстве 3D-игр. Машина в этом случае отрисовывает изображение в реальном времени. Для создания одного кадра пререндеренной сцены требуется большие вычислительные мощности.

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

Из-за этого мы получаем разные уровни качества. Рендеринг в реальном времени нужен играм для интерактивности. Такие статичные элементы, как кинематографические вставки или неподвижные фоны, можно создавать пререндерингом. Разница результатов была огромной. Вот пререндеренный фон и персонаж реального времени из игры 1999 года:

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

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

Когда мы перешли к консолям с настоящим 3D (таким как N64 и PS1), то наконец увидели, на что не способен рендеринг в реальном времени. Нельзя использовать источники освещения, чтобы запекать тени или освещение в сцену, материалы не реагируют на свет, нет никакого «рельефного текстурирования» (bump mapping), только геометрия и текстуры низкого разрешения. Как же художникам удавалось с этим cправляться?

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

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

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

Итак, следующим поколениям «железа» нужно было решить ещё множество проблем. Следующее поколение консолей — PS2, Xbox и Gamecube — попытались с некоторыми из них справиться. Первым заметным скачком в качестве стало повышение разрешения текстур и улучшение освещения.

Продолжение — на Хабре. Будьте готовы к большому количеству скриншотов и видео в материале.

Оставить комментарий

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