Как функция 3D-шума Перлина используется для создания рельефа? - PullRequest
14 голосов
/ 23 мая 2011

Я могу обернуть голову, используя функцию шума Perlin 2D, чтобы сгенерировать значение высоты, но я не понимаю, почему будет использоваться функция шума Perlin 3D.В блоге Notch он упомянул об использовании функции шума 3D Perlin для создания ландшафта в Minecraft.Кто-нибудь знает, как это будет сделано и почему это будет полезно?Если вы передаете значения x, y и z, не значит ли это, что у вас уже есть рост?

Ответы [ 3 ]

43 голосов
/ 23 мая 2011

В статье точно сказано, почему он использовал 3D-шум:

Я использовал 2D карту высоты шума Перлина ... ... но недостаток того, чтобы быть скорее тупой. В частности, нет никакого способа для этот метод генерирует любые свесы.

Итак, я переключил систему на аналогичная система основана на 3D Perlin шум. Вместо отбора проб «земля» высота », я оценил значение шума как «плотность», где что-нибудь ниже чем 0 будет воздух, и ничего больше или равно 0 будет земля.

13 голосов
/ 23 мая 2011

Ну, Майнкрафт о шахтах.Итак, Нотч попытался решить: «Как я могу получить дыры / выступы в моем мире?»

Поскольку шум 2D-перлина генерирует красивые / гладкие холмы, шум 3D-перлина будет создавать хорошие / гладкие холмы и хорошиедыры в вашей трехмерной воксельной сетке.

Реализация может быть найдена здесь (в то время как это N-мерное решение).

В других случаях использования компонент Z3D-шума Perlin установлен на текущее время.Таким образом, вы получите плавный переход между различными шумами 2d perlin, который можно использовать как основу для плавных текстур.

5 голосов
/ 27 мая 2011

Вам следует взглянуть на источник Minetest, а именно на файлы noise.cpp и map.cpp .

...