
Играясь с генерацией карт высот в unity, я заметил одну неприятную тенденцию: большинство статей и материалов рассказывают либо о Value Noise, либо о Perlin Noise, либо о Voronoi Noise. Возможно я плохо искал, но это не отменяет того факта, что я сел писать эту статью, поэтому для всех нуждающихся я сделал шпаргалку. (Здесь нет реализаций, только собраны разные шумы с картинками, описанием и применением)
Начиная это писать, я не понимал, что лезу в непроглядные дебри. Прошу простить неточности, так как я чёрт, который вообще не вдупляет о чём тут говорится. Я не включал сюда множество шумов, которые применимы в основном в различных фильтрах для фотографий.
Perlin Noise
Да, я на него сетовал, но и без обойтись нельзя
Шум Перлина является самым ярким примером Градиентных шумов (Gradient Noise).

Наиболее очевидное различие — картинка выглядит «облачной». Если говорить о технических деталях, она непрерывна — если сильно увеличить ее масштаб, градиент всегда будет плавным. Нет резких переходов от чёрного к белому, поэтому алгоритм работает на удивление хорошо, когда нужно что-то «случайное», но не слишком.
Шум Перлина широко используется в двухмерной и трёхмерной компьютерной графике для создания таких визуальных эффектов, как дым, облака, туман, огонь и т. д. Он также очень часто используется как простая текстура, покрывающая геометрическую модель.


Стоит сказать, что у многих шумов есть аналоги, которые могут быть лучше оптимизированы или просто по-другому выглядят. Для шума Перлина таким аналогом служит Simplex Noise, он не сильно отличается от своего предшественника, но выигрывает в производительности. Особым ценителям могу ещё порекомендовать обратить внимание на Wavelet Noise - она решает проблемы со сглаживанием и потерей деталей (я не понял, но кто-то из вас может поймёт, о чём речь).
Voronoi Noise (Worley Noise)
Самым известным примером Клеточного шума (Cellular Noise) является шум Вороного.

Используется в компьютерной графике для случайного разбиения поверхностей.
Используется при генерации органических клеткообразных структур, таких как: крылья стрекозы, рисунок на листе или жирафе.


Одна из разновидностей Chebyshev Noise - имеет более резкие переходы, похоже на какую-то плитку или мозаику.
Curl Noise или Flow Noise

Шум Curl похож на шум Perlin, но вместо этого используется для физически обоснованного моделирования для создания "изменяющихся во времени полей несжимаемых турбулентных скоростей". Шум потока - это еще один шум, используемый для физического моделирования. Это полезно для создания изменяющихся во времени текстур с закручивающимся поведением.
Как раз для подобных шумов используется Симплекс, а не Перлин.
Хорошим примером будет ракета, выбрасывающая газ из сопла - серьёзную симуляцию газа никто не будет делать ради небольшого эффекта.

Sparse Convolution Noise и Gabor Noise

Это два разных шума, но суть одна: похоже на волосы или шерсть.

Fractal Brownian Motion Noise или Ridged-Multifractal Noise


Фрагмент 2D шума выглядит довольно хорошо и подойдет для создания хорошей текстуры шума в большинстве случаев. Однако, если вы используете шум для изображения реальных несовершенств, он получается слишком однородным и больше похож на размытую сетку. Случайность в реальном мире более динамична. Мы можем достичь этого, добавив несколько шумовых паттернов вместе, но разного размера. Это то, что обычно называют фрактальным броуновским движением.
Контролируя, сколько шумов мы добавляем (октавы), насколько интенсивным (амплитуда) и насколько “плотным” (частота) является каждый слой, мы получаем гораздо более динамичный шумовой паттерн.

Мы просто накладываем много слоёв друг на друга, чаще всего берут много слоёв шума Перлина с уменьшением масштаба, каждый раз добавляя всё больше деталей (Multi-Octaves Perlin Noise), но никто не запрещает складывать Вороной с Перлином и Габором. Чаще всего эту технику используют для создания ландшафтов.
Очень интересно наблюдать за изменением параметров такого преобразования.

Во время добавления октав можно провернуть приём под названием Turbulence. Им можно превратить Fractal Brownian Motion Noise в такое.
Ridged Noise

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

Это применение функций перераспределения высот. При использовании функции, отличной от ступенчатой, террасы могут быть более круглыми или располагаться только на некоторых высотах.
Мы просто приводим плавно изменяющиеся высоты к определённым значениям, которые чаще всего идут с каким-то шагом (высотой до следующей террасы).
Я смог найти понятную реализацию (опять).
Domain Warping

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

Очень хорошая статья с красивыми картинками про это.
Заключение
Самое главное в искусстве шума - это возможность модифицировать базовые паттерны, чтобы получать красивые картинки, а из них и текстуры, и анимации, и партиклы, и материалы.
Я проделал большую работу по поиску всего этого, поэтому, надеюсь вы оцените мой первый пост и укажите на недочёты или неточности.
