Как создать случайные горы в прокруткой?

Итак, я пытаюсь создать упрощенный мир в стиле Terraria, используя шум Perlin. Я получил эту работу, и местность была рандомизирована. Однако ландшафт всегда выглядит как странная косинус-кривая. Холмы и днища с разной высотой повторяются. Эффект, который я хочу достичь, похож на этот:

 введите описание изображения здесь>> </a> </p>

<p> Если местность в основном плоская, и иногда появляется большая гора. </p>

<p> Есть ли алгоритм или «шум», которые могут достичь этого эффекта или что еще нужно делать? </p></body></html>

5 голосов | спросил Grimbox 7 MarpmMon, 07 Mar 2016 16:48:10 +03002016-03-07T16:48:10+03:0004 2016, 16:48:10

1 ответ


15

Вы хотите смешивать разные длины волн с разными уровнями интенсивности.

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

Теперь добавьте две (или более) волны вместе. «введите Черная линия - длинные волны и высокая интенсивность.

Красная линия - короткие волны с низкой интенсивностью.

Зеленый - конечный результат.

float getHeight(float x) {
    float longWave = getNoise(x / 100) * 20;
    float shortWave = getNoise(x);

    return longWave + shortWave;
}

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

ответил KaareZ 7 MarpmMon, 07 Mar 2016 17:01:37 +03002016-03-07T17:01:37+03:0005 2016, 17:01:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132