Difference between revisions of "Noise"
From GiderosMobile
Line 42: | Line 42: | ||
-- myNoise:noise2D(x, y) -- true 2D noise | -- myNoise:noise2D(x, y) -- true 2D noise | ||
-- myNoise:noise3D(x, y, z) -- true 3D noise | -- myNoise:noise3D(x, y, z) -- true 3D noise | ||
− | -- difference between noise2D(x, y) and noise(x, y) is that "noise" function uses 3D noise with z = 0, where noise2D uses only 2 values. In other words: noise(x) == noise(x,0,0); noise(x, y) == noise(x,y,0); noise(x,y) == noise2D(x,y); noise(x,y,z) == noise3D(x,y,z) | + | -- difference between noise2D(x, y) and noise(x, y) is that "noise" function uses 3D noise with z = 0, |
+ | -- where noise2D uses only 2 values. In other words: noise(x) == noise(x,0,0); noise(x, y) == noise(x,y,0); | ||
+ | -- noise(x,y) == noise2D(x,y); noise(x,y,z) == noise3D(x,y,z) | ||
print(v) | print(v) | ||
end | end |
Revision as of 07:15, 14 December 2019
Supported platforms:
Available since: Gideros 2019.12
Description
FastNoise is an open source noise generation library with a large collection of different noise algorithms. [FastNoise home page]
Features
- Value Noise 2D, 3D
- Perlin Noise 2D, 3D
- Simplex Noise 2D, 3D, 4D
- Cubic Noise 2D, 3D
- Gradient Perturb 2D, 3D
- Multiple fractal options for all of the above
- Cellular (Voronoi) Noise 2D, 3D
- White Noise 2D, 3D, 4D
- Texture generation
- Array generation
Orignal documentation: https://github.com/Auburns/FastNoise/wiki
Examples
Example 1.
require "FastNoise"
local myNoise = Noise.new() -- create FastNoise instance
myNoise:setSeed(456) -- set generation seed
myNoise:setFrequency(0.04) -- how coarse the noise output is
myNoise:setInterp(Noise.HERMITE) -- set noise interpolation type
myNoise:setNoiseType(Noise.SIMPLEX) -- set noise type
for y = 1, 4 do
for x = 1, 4 do
local v = myNoise:noise(x, y) -- generate 2D noise
-- other possible function:
-- myNoise:noise(x) -- 1D noise
-- myNoise:noise(x, y, z) -- 3D noise
-- myNoise:noise2D(x, y) -- true 2D noise
-- myNoise:noise3D(x, y, z) -- true 3D noise
-- difference between noise2D(x, y) and noise(x, y) is that "noise" function uses 3D noise with z = 0,
-- where noise2D uses only 2 values. In other words: noise(x) == noise(x,0,0); noise(x, y) == noise(x,y,0);
-- noise(x,y) == noise2D(x,y); noise(x,y,z) == noise3D(x,y,z)
print(v)
end
end
Example 2. Grayscaled noise image
require "FastNoise"
local n = Noise.new()
-- generate 128x128 texture
local tex = n:generateTexture(128, 128)
-- add it to scene
stage:addChild(Bitmap.new(tex))
Example 3. Colored seamless noise image
require "FastNoise"
local n = Noise.new()
n:setFrequency(0.03)
n:setFractalOctaves(5)
n:setFractalLacunarity(2.5)
n:setInterp(Noise.HERMITE)
n:setFractalGain(0.6)
n:setNoiseType(Noise.SIMPLEX_FRACTAL)
-- create a color table used by noise
-- h: height value in range [0..1]
-- color: in RGBA format
local colors = {
{h = 0.3, color = {52,99,195,255}},
{h = 0.4, color = {54,102,198,255}},
{h = 0.45, color = {209,208,128,255}},
{h = 0.55, color = {88,151,24,255}},
{h = 0.6, color = {63,106,20,255}},
{h = 0.7, color = {92,68,61,255}},
{h = 0.9, color = {75,60,55,255}},
{h = 1, color = {255,255,255,255}},
}
-- generate 128x128 texture
local tex = n:generateTexture(128, 128, false, {wrap=Texture.REPEAT}, {tileable = true, colors = colors})
-- add it to scene
stage:addChild(Pixel.new(tex, 256,256))
Notes
MethodsFastNoise:reset reset noise parameters to default |
EventsConstants |
- Noise:getCellularDistanceFunction
- Noise:getCellularJitter
- Noise:getCellularNoiseLookup
- Noise:getCellularReturnType
- Noise:getFractalGain
- Noise:getFractalLacunarity
- Noise:getFractalOctaves
- Noise:getFractalType
- Noise:getFrequency
- Noise:getGradientPerturbAmp
- Noise:getInterp
- Noise:getNoiseType
- Noise:getSeed
- Noise:getTexture
- Noise:getTileTexture
- Noise:gradientPerturb2D
- Noise:gradientPerturb3D
- Noise:gradientPerturbFractal2D
- Noise:gradientPerturbFractal3D
- Noise:noise
- Noise:noise2D
- Noise:noise3D
- Noise:reset
- Noise:setCellularDistance2Indices
- Noise:setCellularDistanceFunction
- Noise:setCellularJitter
- Noise:setCellularNoiseLookup
- Noise:setCellularReturnType
- Noise:setColorLookup
- Noise:setFractalGain
- Noise:setFractalLacunarity
- Noise:setFractalOctaves
- Noise:setFractalType
- Noise:setFrequency
- Noise:setGradientPerturbAmp
- Noise:setInterp
- Noise:setNoiseType
- Noise:setSeed
- Noise:simplex4D
- Noise:whiteNoise2DInt
- Noise:whiteNoise3DInt
- Noise:whiteNoise4D
- Noise:whiteNoise4DInt
- Noise.BILLOW
- Noise.CELLULAR
- Noise.CELL VALUE
- Noise.CUBIC
- Noise.CUBIC FRACTAL
- Noise.DISTANCE
- Noise.DISTANCE 2
- Noise.DISTANCE 2 ADD
- Noise.DISTANCE 2 DIV
- Noise.DISTANCE 2 MUL
- Noise.DISTANCE 2 SUB
- Noise.EUCLIDEAN
- Noise.FBM
- Noise.HERMITE
- Noise.LINEAR
- Noise.MANHATTAN
- Noise.NATURAL
- Noise.NOISE LOOKUP
- Noise.PERLIN
- Noise.PERLIN FRACTAL
- Noise.QUINTIC
- Noise.RIGID MULTI
- Noise.SIMPLEX
- Noise.SIMPLEX FRACTAL
- Noise.VALUE
- Noise.VALUE FRACTAL
- Noise.WHITE NOISE
- Noise.new