Алгоритм : я генерирую двумерный массив значений, используя шум Перлина . После того, как шум сгенерирован, для каждого элемента я определяю минимальное значение шума для 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
. В своих целях я могу сбалансировать их с помощью небольшого скаляра.