Различия между соседними значениями шума 2d Perlin - PullRequest
0 голосов
/ 26 апреля 2020

Алгоритм : я генерирую двумерный массив значений, используя шум Перлина . После того, как шум сгенерирован, для каждого элемента я определяю минимальное значение шума для 9 соседних ячеек (сам и диагональ считаются соседними) Затем я устанавливаю переменную наклона текущей ячейки (дискретное значение направления), чтобы указать движение к минимальной ячейке.

Назначение : Быстрый и простой способ создания сетки дискретных токов.

Выпуск : Диагональное движение (NE, NW, SE, SW ) встречается в два раза чаще, чем движение в манхэттенском стиле (N, E, S, W). Я заметил это только после прохождения размытия 5х5 над ним, что усугубило смещение.

Пробовал : без манжеты, я подумал, что это может быть связано с дополнительным расстоянием (1,41 vs 1) участвует в диагональном движении и поэтому масштабирует эти значения во время сравнения. Но это почти не приводит к диагональному движению.

Вопрос : Я жду подтверждения вышеизложенного. Это артефакт алгоритма шума или я должен продолжать искать ошибку? Кроме того, я заменил алгоритм Алмазного квадрата на Perlin и нашел то же смещение. Спасибо.

РЕДАКТИРОВАТЬ: Goofin 'вокруг на массиве 500x500:

Perlin 2d (Freq 8, Octave 16): отношение разницы между Diag и Manhattan: 1,32

Dia-Sq (шум 200, влажность 0,7, макс. 1,0): то же самое - 1,18

. В своих целях я могу сбалансировать их с помощью небольшого скаляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...