Логика работы шума перлина
Есть непонимание в объяснение алгоритма работы шума Перлина, а именно точки внутри сетки двухмерного шума, в статьях это называют точкой входа, что это значит и где выход, а также сколько этих точек внутри ячейки сетки, или эта точка есть пиксель значение которого находится интерполяцией, то есть если ячейка имеет размер 10 на 10 пикселей то всего в ячейки 100 таких точек?
Ответы (1 шт):
По этой теме информация немного разрознена + неточность переводов.
Но всё, как мне представляется, просто.
В одномерном случае, нам необходимо для заданного 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 пикселей.
Здесь же в ячейке бесконечное множество точек. Размер ячейки не имеет значение. Вы можете задать сетку с единичным шагом и искать значения внутри, как непрерывной функции.
Таким образом, мы можем масштабировать шум как угодно и получать шум разной частоты, в том числе, для получения многооктавного шума.