Вы когда-нибудь смотрели на мир видеоигр и восхищались огромной, раскинувшейся местностью, которая простирается перед вами? Вы когда-нибудь задумывались, как разработчики игр с такой легкостью создают такие реалистичные среды?

Ответом на все это является ШУМ PERLIN …..

Шум Перлина, названный в честь его создателя Кена Перлина, представляет собой тип градиентного шума, который создает естественные узоры случайным, но контролируемым образом. Он широко используется в игровой и киноиндустрии для создания рельефа, текстур и анимации.

Забавный факт: Кен Перлин действительно получил премию Американской киноакадемии за технические достижения за использование своей техники для создания текстур в фильмах.

На приведенном выше рисунке сравнивается двумерный случайный шум (слева) и двумерный шум Перлина (справа). Посмотрите, как шум Перлина стал более гладким и не имеет значительных краев. Эти характеристики делают его идеальным для создания текстур.

Вещи, от которых зависит Perlin Noise-

  1. Количество октав. Количество октав определяет уровень детализации генерируемого шума. Большее количество октав означает больше деталей и более сложную картину шума, а меньшее число означает меньше деталей и более простую картину.
  2. Постоянство: постоянство относится к количеству влияния, которое каждая октава оказывает на окончательный образец шума. Более высокое постоянство означает, что более высокие октавы оказывают большее влияние, что приводит к более неровной и неровной местности, в то время как более низкое постоянство означает, что более низкие октавы имеют большее влияние, что приводит к более гладкой местности.
  3. Частота. Частота шума определяет, насколько быстро характер шума меняется на определенном расстоянии. Более высокая частота означает, что картина шума меняется быстрее, а более низкая частота означает, что она меняется медленнее.
  4. Лакунарность: определяет частотный интервал между октавами или масштаб шумовой картины. Другими словами, он определяет, насколько каждая последующая октава увеличивается или уменьшается по сравнению с предыдущей октавой. Низкое значение лакунарности означает, что октавы разнесены относительно равномерно, что приводит к более гладкому и равномерному распределению шума.

Теперь вместо того, чтобы вдаваться в подробности, давайте взглянем на более наглядные вещи с использованием Python.

Этот точный вывод является результатом предыдущего кода. Код прост для понимания. Теперь мы можем наблюдать, что созданный ландшафт имеет довольно плавный характер.

Основные изменения, вызванные генерацией ландшафта, связаны с изменением октав, постоянства, лакунарности, x_step и y_step. Давайте подавать разные значения -

Так вот, эта местность была создана кормлением -

x_step = 0.04
y_step = 0.04

Я также изменил цветовую карту на 'viridis', обратите внимание, как увеличение значений x_step и y_step привело к крутому ландшафту.

Интересное наблюдение заключается в том, что если вы наблюдаете за местностью сверху перпендикулярно, вы сможете увидеть 2D-форму шума Перлина.

Не стесняйтесь экспериментировать с кодом, пробуйте разные комбинации параметров и генерируйте различные структуры ландшафта.

продолжай кодить, продолжай учиться!