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


Как серый превращается в высоту
Заголовок раздела «Как серый превращается в высоту»Земля в Rust занимает 1000 метров по высоте, уровень моря ровно посередине. Карта высот равномерно распределяет свои серые тона по этому диапазону:
| Серый | Высота в игре |
|---|---|
| Чёрный | 500 м ниже уровня моря, дно мира |
| Средне-серый | Уровень моря |
| Белый | 500 м выше уровня моря, самая высокая земля, которую позволяет Rust |
Поэтому морское дно тёмное, пляжи лежат чуть выше средне-серого, а вершины гор это самые яркие пиксели. Настоящий остров использует только часть диапазона, потому карта высот целой карты выглядит как мягкий серый с чуть более тёмным морем вокруг:

2D-вид Crucible Heightmap растягивает серые тона, чтобы формы легко читались: высокая земля яркая, море тёмное. Карта высот, которую он экспортирует, сохраняет настоящие серые тона.

Почему 16 бит
Заголовок раздела «Почему 16 бит»Карты высот Rust это 16-битные изображения в оттенках серого, то есть 65 536 оттенков. Распределённые на 1000 метров, это около 1,5 см высоты на оттенок, так что склоны получаются гладкими.
В 8-битной картинке, как в обычной фотографии, всего 256 оттенков. Тогда каждая ступень это около 4 метров высоты, и каждый склон в игре превращается в заметные террасы. Поэтому карта высот, нарисованная в обычном редакторе и сохранённая в 8 бит, выглядит ступенчатой, и поэтому Crucible Heightmap всегда пишет 16 бит.
Какого размера карта высот?
Заголовок раздела «Какого размера карта высот?»Карта высот это квадратная сетка, и её размер зависит от размера карты: 513, 1025, 2049 или 4097 пикселей по стороне. Каждый пиксель покрывает от 1 до 2 метров земли. Точные ступени описаны на странице разрешение карты высот Rust, а какой размер карты выбрать, на странице размеры карт Rust.
Чего в карте высот нет
Заголовок раздела «Чего в карте высот нет»Карта высот это высота и больше ничего. Всё остальное на карте Rust лежит в своём слое файла .map:
- текстуры земли: трава, грязь, песок, камень, снег, лесная подстилка
- биомы: умеренный, засушливый, тундра, арктический и джунгли
- слои топологии, которые говорят Rust, где ставить деревья, руду, лут и спавны игроков (смотрите биомы и топология Rust)
- вода, монументы, дороги и префабы
Поэтому .raw или .png карта высот приносит только голый рельеф. Вот почему главный экспорт Crucible Heightmap это целый файл Rust .map, который несёт вместе с высотой текстуры земли, биомы, топологию, озёра и скалы.
Как RustEdit использует карту высот
Заголовок раздела «Как RustEdit использует карту высот»Откройте .map в RustEdit, и её карта высот загрузится как рельеф, а поверх лягут все остальные слои.
Чтобы начать с голой карты высот, откройте в RustEdit диалог Create New Map, задайте размер карты и соответствующее ему разрешение карты высот и выберите ваш 16-битный файл .raw. RustEdit поднимет его в рельеф, а дальше вы добавляете монументы, дороги и всё остальное. По шагам: как сделать кастомную карту Rust.

Где здесь Crucible
Заголовок раздела «Где здесь Crucible»Нарисовать естественно выглядящую 16-битную карту высот вручную долго. Crucible Heightmap это генератор карт Rust, который делает рельеф в духе Rust, позволяет формировать его ползунками и кистями и экспортирует его как готовый к открытию .map, .raw или .png.
