This is a project to get all the fancy noises out there under one roof... I was getting super annoyed having to call different noises with different constructors, so I figured lets make this conform to my head. Most are based off of others public examples I'll make sure to credit them, but for the most part this is a whole new reworking. Quite a few bugs for right now, and Im sure the way doing the seed calculations is pretty hacky... Umm a few of the calculations are my own so my bad if they syck? Once the project is done, there will be a ton of different ways to generate noise, and I will be porting a bunch of GLSL noises I did over as well along with my Worley System and others that I can find.
A Bunch of Noises and functions are turned off for now, while I make changes to the script, currently active: Simple2D, Simple3D, Perlin2D, Perlin3D
A Bunch of Noises and functions are turned off for now, while I make changes to the script, currently active: Simple2D, Simple3D, Perlin2D, Perlin3D
var noise = new dN(type => string ,seed => string, args => {}); noise.getValue(args =>{});
This is the quickest to compute, and is based off of Stefan Gustavson Noise Calculations.var noise = new dN('Simple2' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 1 is effectivly random noise
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#}
Returns the Value of the noise according to the set output Parameters. Requires a Object with x and y keyvalues.
This is the quickest to compute, and is based off of Stefan Gustavson Noise Calculations.var noise = new dN('Simple3' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 1 is effectivly random noise
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#,z:#}
Returns the Value of the noise according to the set output Parameters. Requires a Object with x, y and z keyvalues.
Based off of Stefan Gustavson Noise Calculations.var noise = new dN('Perlin2' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 10 is recomended for good output.
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#}
Returns the Value of the noise according to the set output Parameters. Requires a Object with x and y keyvalues.
Based off of Stefan Gustavson Noise Calculations.var noise = new dN('Perlin3' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 10 is recomended for good output.
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#,z:#}
Returns the Value of the noise according to the set output Parameters. Requires a Object with x , y and z keyvalues.
My janky version of worley noise, before I really did some research. Produces some cool geometric effects.var noise = new dN('Poorly2' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 10 is recomended for good output.
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#
Returns the Value of the noise according to the set output Parameters. Requires a Object with x and y keyvalues.
A Variation of my Poorly System, creates Tile like structures. Will be adding a lot more functionality to this one.var noise = new dN('Tiley2' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 10 is recomended for good output.
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#
Returns the Value of the noise according to the set output Parameters. Requires a Object with x and y keyvalues.
My Variation of a Classic Cellular System. As seen in Tutorial 1.var noise = new dN('Worley2' ,seed => string, args => {}); noise.getValue(args =>{});
Arguments
width && height
oftype === number > 0
This sets the size of the underlying lattice
n
oftype === number > 0
Target point to do distance mesurements to.
nPoints
oftype === number > 0
number of points to generate per zone.
style
oftype === string
The calculations for distance. See Distances
frequency
oftype === number > 0
frequency refers to the period or phase at which data is sampled.
amplitude
oftype === number > 0
amplitude refers to the range that the current octave at which the result can be in.
octave
oftype === int >= 1
Each octave has less influence on the final result. Each octave adds a linear increase in code execution time, do not use more than a few octaves if not preprocessed.
persistence
oftype === number > 0
The influence should each successive octave have, quantitatively.
scale
oftype === number > 0
This will Multipy the x,y input on the ._getValue() method. Effectivly sizing up the noise. *A scale of 10 is recomended for good output.
scaleFloor
oftype === bool
Floors the scaling of the noise to whole numbers. This is good for a pixlated look.
output
oftype === {type: oftype === (string => 'number' || 'color' ), values: oftype === (Array(4) => [0<=>1,0<=>1,0<=>1,0<=>1])}
In order to change the output from a single value to a color you must include this object as and argument. If you are simply returning a value do not worry about this argument. If you do include it the value array is structured as R,G,B,A and their return value will be multiplied by the respective value.
Methods
._getValue(args)
args === {x:#,y:#
Returns the Value of the noise according to the set output Parameters. Requires a Object with x and y keyvalues.
Information coming soon.dN.Mix(x,y,a);
Information coming soon.dN.Mix(x,y,a);
Information coming soon.dN.Mix(x,y,a);
Information coming soon.dN.Mix(x,y,a);
Information coming soon.dN.Mix(x,y,a);
Also I will be posting tutorials on this website dealing with the development of noises and their uses. Be Sure to check out the first in the serise!
2016 Andrew V Butt Sr. aka Pryme8