Найти тему
Терри МакГиннис

Как устроены компьютерные игры: земля

Оглавление

Давайте без вступлений! В этой статье мы поговорим о создании земли в видеоиграх. О том, почему на локациях вы часто видите одинаковые камни, деревья и дома. Заваривайте пельмени, на связи разработчик игр с восьмилетним опытом работы и мы начинаем!

Terrain - земля написанная на бумаге

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

Всё описанное дальше - простейшее объяснение где я опускаю много подробностей. Давайте создадим текстовый документ и напишем в нём числа в диапазоне от 1 до 9 размером 3 на 3 числа. У нас выйдет вот такая текстовая матрица:

Матрица 3*3
Матрица 3*3

Давайте теперь представим что одно число будет равняться площади в 100м ² . Теперь запихнем эту матрицу в игровой движок и скажем что число 1 = 0 метров над уровнем моря, а 9 = 100 метров над уровнем моря.
Ждём небольшого просчёта и получаем вот такой Terrain:

Terrain
Terrain

Хотя мы получили плоскость с подъёмом в центре - это не сильно похоже на землю. Потому разработчики придумали целый ряд инструментов которые позволяют дизайнерам "рисовать" горы и холмы буквально "кисточкой". Все их рисунки превращаются в матрицу чисел. Простейший пример на картинке ниже. Тут один квадратик равен одному числу на матрице:

Terrain
Terrain

Текстуры нарисованные числами

Но по чисто белой или чёрной земле бегать скучно. Давайте возьмём ту же матрицу чисел и представим что 1 = картинка с зелёной травой, а 2 = камень. Вот так выглядит матрица теперь:

Матрица текстур
Матрица текстур

Теперь перенесем её на наш Terrain и получим хорошо затекстурированную землю:

Затекстурированный Terrain
Затекстурированный Terrain

Terrain - деревья как матрица

Как вы должны были догадаться - деревья мы будем садить таким же способом. Как и траву. Как и камни. Всё что нужно - присвоить числам матрицы их 3D модели. Например 1 = дерево, 2 = камень, 3 = трава и т.д.
И всё, мы получим Terrain c растительность. и камнями.

Terrain
Terrain

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

Ребят, заканчиваются идеи для статей! Пишите в комментариях темы - которые вам было бы интересно увидеть в моих статьях!