Самый быстрый алгоритм 3D-шума Perlin-Like?
Прошло уже более 20 лет с тех пор, как Кен Перлин впервые изобрел свой шум. Кто-нибудь смог создать более быстрый вид генератора 3D-шума с свойствами, близкими к Perlin (процедурная, естественная группировка, уменьшение полосы, регулярный размер и т.д.)?
Я пытаюсь создать процедурный генератор мира, но в настоящее время Perlin просто не режет его. Я признаю, что моя реализация не такая лучшая, как сейчас, но если я собираюсь ее переписать, я подумал, есть ли лучший алгоритм.
Ответы
Ответ 1
Вы хотите Симплексный шум.
- менее дорогостоящий расчет
- не основано на квадратной сетке, поэтому нет очевидных направленных артефактов
- лучше масштабируется до более высоких размеров: O (N ^ 2) против классического Perlin O (2 ^ N) для N измерений
Здесь есть хорошее объяснение здесь. По-видимому, реализация примера Кена Перлина - это не самый понятный код.
Ответ 2
Год назад мне тоже понадобился fast Perlin
Noise и, наконец, реализовано это.
Java Gaming, который является 2d в java, но может быть легко превращен в 3d (и даже на любом другом языке, кроме java).
В зависимости от вашей потребности вы можете просто использовать что-то вроде noise2d * noise1d (или подобный трюк), вот образец трюка (должен быть noise2d * noise1d) рендеринг в полном объеме Программное обеспечение Java.