Введение

Конструкция для n-мерных функций шума Симплексный шум является результатом n-мерной функции шума, сопоставимой с шумом Перлина ("классический" шум), но с меньшим количеством направленных артефактов, в более высоких измерениях и более низкой вычислительной нагрузкой. Кен Перлин разработал алгоритм в 2001 году, чтобы устранить ограничения его классической функции шума, особенно в более высоких измерениях. Преимущества простого шума над шумом Перлина: простой шум имеет более низкую вычислительную сложность и требует меньше умножений. Симплексный шум масштабируется до более высоких измерений (4D, 5D) с гораздо меньшими вычислительными затратами: сложность относится к измерениям, а не к классическому шуму. У симплексного шума нет заметных направленных артефактов (визуально изотропный), хотя шум, генерируемый для разных измерений, визуально отличается (например, 2D-шум имеет другой вид, чем 2D-резки 3D-шума, и он выглядит все хуже для более высоких измерений). Симплексный шум имеет хорошо определенный и непрерывный градиент (почти) везде, который можно вычислить довольно дешево. Симплексный шум легко реализовать в аппаратном обеспечении. В то время как классический шум интерполирует между градиентами в окружающих конечных точках гиперсети (т.е. северо-восток, северо-запад, юго-восток и юго-запад в 2D), простой шум делит пространство на простоты (т.е. трехмерные треугольники). Это уменьшает количество точек данных. В то время как гиперкуб в измерениях имеет углы, симплекс в измерениях имеет только углы. Треугольники равносторонние в 2D, но в более высоких измерениях простоты только приблизительно регулярны. Например, плитка в 3D-процессе функции является ориентацией четырехугольного дисфеноида сотового пчелиного улья. Симплексный шум полезен для компьютерной графики, где шум обычно рассчитывается в 2, 3, 4 или, возможно, 5 измерениях. Для более высоких измерений n сфер вокруг n уголков простого не достаточно плотно упакованы, уменьшая поддержку функции и делая ее нулевой в больших частях пространства.

Деталь алгоритма

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

Упрощенное подразделение

После определения вышеперечисленного значения внутренней координаты (xi, yi, ) сортируются в убывающем порядке, чтобы определить, в каком из скошенных симплексов ортосхемы Шлефли находится точка. Тогда полученный симплекс состоит из вершин, соответствующих упорядоченному пересечению краев от (0, 0, , 0) до (1, 1, , 1), из которых есть n! возможностей, каждая из которых соответствует одной пермутации координат. Другими словами, начните с нулевой координаты и последовательно добавляйте, начиная с значения, соответствующего величине величины наибольшей внутренней координаты, и заканчивая наименьшим. Например, точка (0,4, 0,5, 0,3) будет лежать внутри симплекса с вершинами (0, 0, 0), (0, 1, 0), (1, 1, 0), (1, 1, 1). Координаты "и" самые большие, поэтому они добавляются первыми. Затем следует координаты xi, и, наконец, zi.

Выбор градиента

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

Правовой статус

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