Прежде всего, извините за мой английский.
Я пытаюсь создать виртуальный мир с ландшафтом, как в simcity2000, или транспортным магнатом, где ландшафт сделан из плиток, а высота плиток не может прыгать больше, чемодин уровень между плитками, так что нет скал.
Для создания рельефа я использую перлин \ симплексный шум, но с этим я получаю крутые склоны.
Я взялпосмотрите на исходный код Open Transport Tycoon, и там после генерации ландшафта все плитки на карте будут проходить и сглаживаться, чтобы иметь высоту только для одного юнита.
Но для меня это не сработает,потому что моя карта будет намного больше, и я не могу позволить себе сглаживать все это по циклу.Кроме того, невозможно сгладить только видимую часть рельефа, поскольку она будет отличаться в зависимости от того, с какого начала сглаживание плитки.
Я попытался написать свою собственную функцию шума, которая возвращает линейно интерполированное значение междудве точки с расстоянием, равным максимальной высоте этих точек, таким образом, наклон не может быть больше 45 градусов, это работало, но пока вы не попытаетесь объединить такие функции вместе.
Как я могу псевдо-случайным образом генерировать ландшафт с максимальным уклоном в 45 градусов и использовать другой способ, кроме сглаживания ранее созданной карты?
Сейчас у меня нет идей, и я надеюсь, что шум Перлина может иметьнекоторые возможные варианты, такие как «максимальный угол наклона», но Google не помог мне с этим.