Как из плавного шума складывается рельеф

Шум Перлина — способ получить не случайные числа, а плавно меняющийся случайный узор. Представьте сетку, в узлах которой заданы случайные значения. Алгоритм сглаживает переходы между ними, поэтому соседние точки обычно похожи друг на друга, а резких скачков мало. Получается карта непрерывных вариаций — удобная основа для природных форм.

От одной карты к горам и долинам

Чтобы создать рельеф, программа берёт координаты точки и вычисляет для неё значение шума. Это значение можно считать высотой поверхности: где оно выше — поднимаются склоны, где ниже — образуются долины. Меняя масштаб узора и его силу, разработчик управляет тем, насколько крупными и выраженными будут неровности.

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

Реки и пещеры требуют правил

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

Преимущество метода в том, что ландшафт можно пересчитывать автоматически, меняя параметры или начальное значение генератора. Художник задаёт характер местности, а алгоритм заполняет детали — поэтому каждый вариант может быть новым, но подчиняться одному замыслу.