Генерация пакетов n-мерного шума Перлина с использованием Python и NumPy - PullRequest
3 голосов
/ 24 декабря 2011

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

Первой мыслью было бы сгенерировать его в виде пакетов - вместо того, чтобы проходить через каждый пиксель от 0.0 до 1.0, генерировать numpy.linspace, а затем воздействовать на него, используя векторизованные операции numpy, но, похоже, это за мной, я теряюсь и удаляюсьвсе, что я написал.

Может ли некий StackOverflower помочь мне?Как пример кода, так и подробное объяснение каждого шага очень помогли бы мне.

РЕДАКТИРОВАТЬ: Под пакетами я подразумеваю массивы, содержащие значения перлин-шума в разных точках пространства,в отличие от моего метода noise (), генерирующего только один пиксель за раз.

1 Ответ

1 голос
/ 24 декабря 2011

Если угадать правильно, то Асмагедон хочет пересчитать свои шумовые текстуры, а затем нарисовать их на какой-то другой цели другого размера.

Один из способов сделать это - scipy.signal.resample , который может как интерполировать, так и подвыбирать сигнал.По памяти он работает только с одним измерением за раз - просто зацикливайтесь на измерениях.

Возможно, есть лучшие способы сделать сглаживание, но этот прост.

...