love.math.noise (Українська)

Доступне починаючи з LÖVE 0.9.0
Ця функція недоступна в попередніх версіях.

Генерує значення Симплекс-шуму або шуму Перлина в 1—4 вимірах. Значення, яке поверне функція для одних аргументів, завжди буде одним і тим же.

Симплекс-шум тісно зв'язаний з шумом Перлина. Він широко використовується для процедурної генерації ресуріс.

Є багато сторінок (анг.), де шум Перлина та Симплекс-шум описані детально.

O.png Значення, яке повертає функція, може бути константним, якщо використовуються тільки цілі числа. Краще не передавайте лише цілі числа, щоб отримати різні результати.  


Функція

Генерує Сиплекс-шум з одного виміру.

Вигляд

value = love.math.noise( x )

Аргументи

number x
Число, яке використовується для генерації значення шуму.

Повертає

number value
Значення шуму в діапазоні [0, 1].

Функція

Генерує Сиплекс-шум з 2 вимірів.

Вигляд

value = love.math.noise( x, y )

Аргументи

number x
Перше значення двомірного вектору, який використовується для генерації значення шуму.
number y
Друге значення двомірного вектору, який використовується для генерації значення шуму.

Повертає

number value
Значення шуму в діапазоні [0, 1].

Функція

Генерує шум Пердина (генерує Сиплекс-шум в версії 0.9.2 та старіше) з 3 вимірів.

Вигляд

value = love.math.noise( x, y, z )

Аргументи

number x
Перше значення 3-мірного вектору, який використовується для генерації значення шуму.
number y
Друге значення 3-мірного вектору, який використовується для генерації значення шуму.
number z
Третє значення 3-мірного вектору, який використовується для генерації значення шуму.

Повертає

number value
Значення шуму в діапазоні [0, 1].

Функція

Генерує шум Пердина (генерує Сиплекс-шум в версії 0.9.2 та старіше) з 4 вимірів.

Вигляд

value = love.math.noise( x, y, z, w )

Аргументи

number x
Перше значення 4-мірного вектору, який використовується для генерації значення шуму.
number y
Друге значення 4-мірного вектору, який використовується для генерації значення шуму.
number z
Третє значення 4-мірного вектору, який використовується для генерації значення шуму.
number w
Четверте значення 4-мірного вектору, який використовується для генерації значення шуму.

Повертає

number value
Значення шуму в діапазоні [0, 1].

Приклади

Заповнює двомірну сітну Симлпекс-шумом щоразу, коли натиснуто на клавішу.

local grid = {}

function love.draw()
    for x = 1, #grid do
        for y = 1, #grid[x] do
            local f = 1 * grid[x][y]
            love.graphics.setColor( f, f, f, 1 )
            love.graphics.rectangle( 'fill', x * 8, y * 8, 7, 7 )
            love.graphics.setColor( 1, 1, 1, 1 )
        end
    end
end

-- Заповнити кожен піксель Симплекс-шумом
local function noise()
    for x = 1, 60 do
        for y = 1, 60 do
            grid[x] = grid[x] or {}
            grid[x][y] = love.math.noise( x + love.math.random(), y + love.math.random() )
        end
    end
end

function love.keypressed()
    noise()
end

Див. також

Іншими мовами