Логика работы шума перлина

Есть непонимание в объяснение алгоритма работы шума Перлина, а именно точки внутри сетки двухмерного шума, в статьях это называют точкой входа, что это значит и где выход, а также сколько этих точек внутри ячейки сетки, или эта точка есть пиксель значение которого находится интерполяцией, то есть если ячейка имеет размер 10 на 10 пикселей то всего в ячейки 100 таких точек?


Ответы (1 шт):

Автор решения: Laukhin Andrey

По этой теме информация немного разрознена + неточность переводов.
Но всё, как мне представляется, просто.

В одномерном случае, нам необходимо для заданного x найти значение y:

function perlinNoise1d(x) {
    // расчет y
    return y;
}

Получается, на входе x, на выходе y.

Для двухмерного случая, по заданной точке (x, y) мы рассчитываем значение z, которое, при отображении растрового изображения, будет интерпретироваться как интенсивность пикселя:

function perlinNoise2d(x, y) {
    // расчет z
    return z;
}

Вход: координаты точки x и y
Выход: z

В качестве исходных данных для расчета z используется сетка градиентов, а в основе расчетов: скалярное произведение векторов и интерполяция.

сколько этих точек внутри ячейки сетки

Бесконечное множество. Функция не является дискретной.

если ячейка имеет размер 10 на 10 пикселей то всего в ячейки 100 таких точек?

Это на экране в ячейке 10x10 будет 100 пикселей.
Здесь же в ячейке бесконечное множество точек. Размер ячейки не имеет значение. Вы можете задать сетку с единичным шагом и искать значения внутри, как непрерывной функции.

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

→ Ссылка