diff --git a/game/addons/mat_maker_gd/nodes/common/commons.gd b/game/addons/mat_maker_gd/nodes/common/commons.gd index d93dface..e46a597f 100644 --- a/game/addons/mat_maker_gd/nodes/common/commons.gd +++ b/game/addons/mat_maker_gd/nodes/common/commons.gd @@ -267,6 +267,13 @@ static func ThickLine(uv : Vector2, posA : Vector2, posB : Vector2, radiusInv : return finalGray; +#vec3 color_dots(vec2 uv, float size, float seed) { +# vec2 seed2 = rand2(vec2(seed, 1.0-seed)); +# uv /= size; +# vec2 point_pos = floor(uv)+vec2(0.5); +# return rand3(seed2+point_pos); +#} + static func color_dots(uv : Vector2, size : float, pseed : int) -> Vector3: var seed2 : Vector2 = rand2(Vector2(float(pseed), 1.0 - float(pseed))); uv /= size; diff --git a/game/addons/mat_maker_gd/nodes/common/noise_perlin.gd b/game/addons/mat_maker_gd/nodes/common/noise_perlin.gd index 619c9616..0a0b7d84 100644 --- a/game/addons/mat_maker_gd/nodes/common/noise_perlin.gd +++ b/game/addons/mat_maker_gd/nodes/common/noise_perlin.gd @@ -3,6 +3,58 @@ extends Reference const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") +#---------------------- +#perlin.mmg + +#Outputs: + +#Output - (float) - Shows a greyscale value noise +#perlin($(uv), vec2($(scale_x), $(scale_y)), int($(iterations)), $(persistence), $(seed)) + +#Inputs: +#scale, vector2, default: 4, min: 1, max: 32, step: 1 +#iterations, float, min: 0, max: 10, default: 3, step:1 +#persistence, float, min: 0, max: 1, default: 0.5, step:0.05 + +#---------------------- +#perlin_color.mmg + +#Outputs: + +#Output - (rgb) - Shows a color value noise +#perlin_color($(uv), vec2($(scale_x), $(scale_y)), int($(iterations)), $(persistence), $(seed)) + +#Inputs: +#scale, vector2, default: 4, min: 1, max: 32, step: 1 +#iterations, float, min: 0, max: 10, default: 3, step:1 +#persistence, float, min: 0, max: 1, default: 0.5, step:0.05 + + +#float perlin(vec2 uv, vec2 size, int iterations, float persistence, float seed) { +# vec2 seed2 = rand2(vec2(seed, 1.0-seed)); +# float rv = 0.0; +# float coef = 1.0; +# float acc = 0.0; +# +# for (int i = 0; i < iterations; ++i) { +# vec2 step = vec2(1.0)/size; +# vec2 xy = floor(uv*size); +# +# float f0 = rand(seed2+mod(xy, size)); +# float f1 = rand(seed2+mod(xy+vec2(1.0, 0.0), size)); +# float f2 = rand(seed2+mod(xy+vec2(0.0, 1.0), size)); +# float f3 = rand(seed2+mod(xy+vec2(1.0, 1.0), size)); +# +# vec2 mixval = smoothstep(0.0, 1.0, fract(uv*size)); +# rv += coef * mix(mix(f0, f1, mixval.x), mix(f2, f3, mixval.x), mixval.y); +# acc += coef; +# size *= 2.0; +# coef *= persistence; +# } +# +# return rv / acc; +#} + static func perlin(uv : Vector2, size : Vector2, iterations : int, persistence : float, pseed : int) -> float: var seed2 : Vector2 = Commons.rand2(Vector2(float(pseed), 1.0-float(pseed))); var rv : float = 0.0; @@ -26,6 +78,30 @@ static func perlin(uv : Vector2, size : Vector2, iterations : int, persistence : return rv / acc; +#vec3 perlin_color(vec2 uv, vec2 size, int iterations, float persistence, float seed) { +# vec2 seed2 = rand2(vec2(seed, 1.0-seed)); +# vec3 rv = vec3(0.0); +# float coef = 1.0; +# float acc = 0.0; +# +# for (int i = 0; i < iterations; ++i) { +# vec2 step = vec2(1.0)/size; +# vec2 xy = floor(uv*size); +# vec3 f0 = rand3(seed2+mod(xy, size)); +# vec3 f1 = rand3(seed2+mod(xy+vec2(1.0, 0.0), size)); +# vec3 f2 = rand3(seed2+mod(xy+vec2(0.0, 1.0), size)); +# vec3 f3 = rand3(seed2+mod(xy+vec2(1.0, 1.0), size)); +# vec2 mixval = smoothstep(0.0, 1.0, fract(uv*size)); +# +# rv += coef * mix(mix(f0, f1, mixval.x), mix(f2, f3, mixval.x), mixval.y); +# acc += coef; +# size *= 2.0; +# coef *= persistence; +# } +# +# return rv / acc; +#} + static func perlinc(uv : Vector2, size : Vector2, iterations : int, persistence : float, pseed : int) -> Color: var f : float = perlin(uv, size, iterations, persistence, pseed) diff --git a/game/addons/mat_maker_gd/nodes/common/noise_voronoi.gd b/game/addons/mat_maker_gd/nodes/common/noise_voronoi.gd index 7c436266..c46e04e7 100644 --- a/game/addons/mat_maker_gd/nodes/common/noise_voronoi.gd +++ b/game/addons/mat_maker_gd/nodes/common/noise_voronoi.gd @@ -8,6 +8,24 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") #voronoi_1, 2, 3, 4 -> different outputs #TODO make a set which takes color as input so all 4 variants can be calculated easily +#Outputs: + +#vec4 $(name_uv)_xyzw = voronoi($uv, vec2($scale_x, $scale_y), vec2($stretch_y, $stretch_x), $intensity, $randomness, $seed); + +#Nodes - float - A greyscale pattern based on the distance to cell centers +#$(name_uv)_xyzw.z + +#Borders - float - A greyscale pattern based on the distance to borders +#$(name_uv)_xyzw.w + +#Random color - rgb - A color pattern that assigns a random color to each cell +#rand3(fract(floor($(name_uv)_xyzw.xy)/vec2($scale_x, $scale_y))) + +#Fill - rgba - An output that should be plugged into a Fill companion node +#vec4(fract(($(name_uv)_xyzw.xy-1.0)/vec2($scale_x, $scale_y)), vec2(2.0)/vec2($scale_x, $scale_y)) + +#Inputs: + #scale, min: 1, max: 32, step: 1, default: 4 #stretch, min: 0.01, max: 1, step: 0.01, default: 1 #intensity, min: 0, max: 1, step: 0.01, default: 0.75 diff --git a/game/addons/mat_maker_gd/nodes/common/noises.gd b/game/addons/mat_maker_gd/nodes/common/noises.gd new file mode 100644 index 00000000..b55e32ba --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/common/noises.gd @@ -0,0 +1,44 @@ +tool +extends Reference + +const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") + +#---------------------- +#color_noise.mmg + +#Outputs: + +#Output - (rgb) - Shows the noise pattern +#color_dots($(uv), 1.0/$(size), $(seed)) + +#Inputs: +#size, float, default: 8, min: 2, max: 12, step: 1 + +#---------------------- +#noise.mmg + +#Outputs: + +#float $(name)_f(vec2 uv) { +# return dots(uv, 1.0/$(size), $(density), $(seed)); +#} + +#Output - (float) - Shows the noise pattern +#$(name)_f($(uv)) + +#Inputs: +#grid_size, float, default: 4, min: 2, max: 12, step: 1 +#density, float, default: 0.5, min: 0, max: 1, step: 0.01 + + +#float dots(vec2 uv, float size, float density, float seed) { +# vec2 seed2 = rand2(vec2(seed, 1.0-seed)); +# uv /= size; +# vec2 point_pos = floor(uv)+vec2(0.5); +# float color = step(rand(seed2+point_pos), density); +# return color; +#} + +static func dots(uv : Vector2, size : float, density : float, pseed : float) -> float: + return 0.0 + diff --git a/game/addons/mat_maker_gd/nodes/common/patterns.gd b/game/addons/mat_maker_gd/nodes/common/patterns.gd index 634c491d..47d23f90 100644 --- a/game/addons/mat_maker_gd/nodes/common/patterns.gd +++ b/game/addons/mat_maker_gd/nodes/common/patterns.gd @@ -165,7 +165,7 @@ const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") #width, float, min: 0, max: 1, default: 0.8, step:0.05 (universal input) #---------------------- -#weave.mmg +#weave2.mmg #code #vec3 $(name_uv) = weave2($uv, vec2($columns, $rows), $stitch, $width_x*$width_map($uv), $width_y*$width_map($uv)); diff --git a/game/addons/mat_maker_gd/nodes/material_maker_nodes/color_noise.mmg b/game/addons/mat_maker_gd/nodes/material_maker_nodes/color_noise.mmg deleted file mode 100644 index 91ee52d1..00000000 --- a/game/addons/mat_maker_gd/nodes/material_maker_nodes/color_noise.mmg +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "color_noise", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "size": 9 - }, - "shader_model": { - "code": "", - "global": "vec3 color_dots(vec2 uv, float size, float seed) {\n\tvec2 seed2 = rand2(vec2(seed, 1.0-seed));\n\tuv /= size;\n\tvec2 point_pos = floor(uv)+vec2(0.5);\n\treturn rand3(seed2+point_pos);\n}", - "inputs": [ - - ], - "instance": "", - "longdesc": "Generates a grid made of random color squares", - "name": "Color Noise", - "outputs": [ - { - "longdesc": "Shows the noise pattern", - "rgb": "color_dots($(uv), 1.0/$(size), $(seed))", - "shortdesc": "Output", - "type": "rgb" - } - ], - "parameters": [ - { - "default": 8, - "first": 2, - "label": "Grid Size:", - "last": 12, - "longdesc": "The grid size", - "name": "size", - "shortdesc": "Size", - "type": "size" - } - ], - "shortdesc": "Color Noise" - }, - "type": "shader" -} \ No newline at end of file diff --git a/game/addons/mat_maker_gd/nodes/material_maker_nodes/noise.mmg b/game/addons/mat_maker_gd/nodes/material_maker_nodes/noise.mmg deleted file mode 100644 index dc061e25..00000000 --- a/game/addons/mat_maker_gd/nodes/material_maker_nodes/noise.mmg +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "noise", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "density": 0.5, - "size": 4 - }, - "shader_model": { - "code": "", - "global": "float dots(vec2 uv, float size, float density, float seed) {\n\tvec2 seed2 = rand2(vec2(seed, 1.0-seed));\n\tuv /= size;\n\tvec2 point_pos = floor(uv)+vec2(0.5);\n\tfloat color = step(rand(seed2+point_pos), density);\n return color;\n}", - "inputs": [ - - ], - "instance": "\n\t\tfloat $(name)_f(vec2 uv) {\n\t\t\treturn dots(uv, 1.0/$(size), $(density), $(seed));\n\t\t}", - "longdesc": "Generates a grid made of black and white squares", - "name": "Noise", - "outputs": [ - { - "f": "$(name)_f($(uv))", - "longdesc": "Shows the noise pattern", - "shortdesc": "Output", - "type": "f" - } - ], - "parameters": [ - { - "default": 8, - "first": 2, - "label": "Grid Size:", - "last": 12, - "longdesc": "The grid size", - "name": "size", - "shortdesc": "Size", - "type": "size" - }, - { - "control": "None", - "default": 0.5, - "label": "Density:", - "longdesc": "The density of white squares", - "max": 1, - "min": 0, - "name": "density", - "shortdesc": "Density", - "step": 0.01, - "type": "float" - } - ], - "shortdesc": "Noise pattern" - }, - "type": "shader" -} \ No newline at end of file diff --git a/game/addons/mat_maker_gd/nodes/material_maker_nodes/noise_color.mmg b/game/addons/mat_maker_gd/nodes/material_maker_nodes/noise_color.mmg deleted file mode 100644 index f3bbb96a..00000000 --- a/game/addons/mat_maker_gd/nodes/material_maker_nodes/noise_color.mmg +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "noise_color", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "size": 9 - }, - "shader_model": { - "code": "", - "global": "vec3 color_dots(vec2 uv, float size, float seed) {\n\tvec2 seed2 = rand2(vec2(seed, 1.0-seed));\n\tuv /= size;\n\tvec2 point_pos = floor(uv)+vec2(0.5);\n\treturn rand3(seed2+point_pos);\n}", - "inputs": [ - - ], - "instance": "", - "longdesc": "Generates a grid made of random color squares", - "name": "Color Noise", - "outputs": [ - { - "longdesc": "Shows the noise pattern", - "rgb": "color_dots($(uv), 1.0/$(size), $(seed))", - "shortdesc": "Output", - "type": "rgb" - } - ], - "parameters": [ - { - "default": 8, - "first": 2, - "label": "Grid Size:", - "last": 12, - "longdesc": "The grid size", - "name": "size", - "shortdesc": "Size", - "type": "size" - } - ], - "shortdesc": "Color Noise" - }, - "type": "shader" -} \ No newline at end of file diff --git a/game/addons/mat_maker_gd/nodes/material_maker_nodes/perlin.mmg b/game/addons/mat_maker_gd/nodes/material_maker_nodes/perlin.mmg deleted file mode 100644 index 95255c54..00000000 --- a/game/addons/mat_maker_gd/nodes/material_maker_nodes/perlin.mmg +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "perlin", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "iterations": 3, - "persistence": 0.5, - "scale_x": 4, - "scale_y": 4 - }, - "shader_model": { - "code": "", - "global": "float perlin(vec2 uv, vec2 size, int iterations, float persistence, float seed) {\n\tvec2 seed2 = rand2(vec2(seed, 1.0-seed));\n float rv = 0.0;\n float coef = 1.0;\n float acc = 0.0;\n for (int i = 0; i < iterations; ++i) {\n \tvec2 step = vec2(1.0)/size;\n\t\tvec2 xy = floor(uv*size);\n float f0 = rand(seed2+mod(xy, size));\n float f1 = rand(seed2+mod(xy+vec2(1.0, 0.0), size));\n float f2 = rand(seed2+mod(xy+vec2(0.0, 1.0), size));\n float f3 = rand(seed2+mod(xy+vec2(1.0, 1.0), size));\n vec2 mixval = smoothstep(0.0, 1.0, fract(uv*size));\n rv += coef * mix(mix(f0, f1, mixval.x), mix(f2, f3, mixval.x), mixval.y);\n acc += coef;\n size *= 2.0;\n coef *= persistence;\n }\n \n return rv / acc;\n}\n", - "inputs": [ - - ], - "instance": "", - "longdesc": "Generates several octaves of greyscale value noise", - "name": "Value Noise", - "outputs": [ - { - "f": "perlin($(uv), vec2($(scale_x), $(scale_y)), int($(iterations)), $(persistence), $(seed))", - "longdesc": "Shows a greyscale value noise", - "shortdesc": "Output", - "type": "f" - } - ], - "parameters": [ - { - "control": "None", - "default": 4, - "label": "Scale X", - "longdesc": "The scale along the X axis", - "max": 32, - "min": 1, - "name": "scale_x", - "shortdesc": "Scale.x", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 4, - "label": "Scale Y", - "longdesc": "The scale along the Y axis", - "max": 32, - "min": 1, - "name": "scale_y", - "shortdesc": "Scale.y", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 3, - "label": "Iterations", - "longdesc": "The number of octaves (higher values might affect performance)", - "max": 10, - "min": 1, - "name": "iterations", - "shortdesc": "Octaves", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 0.5, - "label": "Persistence", - "longdesc": "The persistence between two consecutive octaves", - "max": 1, - "min": 0, - "name": "persistence", - "shortdesc": "Persistence", - "step": 0.05, - "type": "float" - } - ], - "shortdesc": "Value Noise" - }, - "type": "shader" -} \ No newline at end of file diff --git a/game/addons/mat_maker_gd/nodes/material_maker_nodes/perlin_color.mmg b/game/addons/mat_maker_gd/nodes/material_maker_nodes/perlin_color.mmg deleted file mode 100644 index 9a165863..00000000 --- a/game/addons/mat_maker_gd/nodes/material_maker_nodes/perlin_color.mmg +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "perlin_color", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "iterations": 3, - "persistence": 0.5, - "scale_x": 4, - "scale_y": 4 - }, - "shader_model": { - "code": "", - "global": "vec3 perlin_color(vec2 uv, vec2 size, int iterations, float persistence, float seed) {\n\tvec2 seed2 = rand2(vec2(seed, 1.0-seed));\n vec3 rv = vec3(0.0);\n float coef = 1.0;\n float acc = 0.0;\n for (int i = 0; i < iterations; ++i) {\n \tvec2 step = vec2(1.0)/size;\n\t\tvec2 xy = floor(uv*size);\n vec3 f0 = rand3(seed2+mod(xy, size));\n vec3 f1 = rand3(seed2+mod(xy+vec2(1.0, 0.0), size));\n vec3 f2 = rand3(seed2+mod(xy+vec2(0.0, 1.0), size));\n vec3 f3 = rand3(seed2+mod(xy+vec2(1.0, 1.0), size));\n vec2 mixval = smoothstep(0.0, 1.0, fract(uv*size));\n rv += coef * mix(mix(f0, f1, mixval.x), mix(f2, f3, mixval.x), mixval.y);\n acc += coef;\n size *= 2.0;\n coef *= persistence;\n }\n \n return rv / acc;\n}\n", - "inputs": [ - - ], - "instance": "", - "longdesc": "Generates several octaves of color value noise", - "name": "Color Value Noise", - "outputs": [ - { - "longdesc": "Shows a color value noise", - "rgb": "perlin_color($(uv), vec2($(scale_x), $(scale_y)), int($(iterations)), $(persistence), $(seed))", - "shortdesc": "Output", - "type": "rgb" - } - ], - "parameters": [ - { - "control": "None", - "default": 4, - "label": "Scale X", - "longdesc": "The scale along the X axis", - "max": 32, - "min": 1, - "name": "scale_x", - "shortdesc": "Scale.x", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 4, - "label": "Scale Y", - "longdesc": "The scale along the Y axis", - "max": 32, - "min": 1, - "name": "scale_y", - "shortdesc": "Scale.y", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 3, - "label": "Iterations", - "longdesc": "The number of octaves (higher values might affect performance)", - "max": 10, - "min": 1, - "name": "iterations", - "shortdesc": "Octaves", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 0.5, - "label": "Persistence", - "longdesc": "The persistence between two consecutive octaves", - "max": 1, - "min": 0, - "name": "persistence", - "shortdesc": "Persistence", - "step": 0.05, - "type": "float" - } - ], - "shortdesc": "Color Value Noise" - }, - "type": "shader" -} \ No newline at end of file diff --git a/game/addons/mat_maker_gd/nodes/material_maker_nodes/voronoi.mmg b/game/addons/mat_maker_gd/nodes/material_maker_nodes/voronoi.mmg deleted file mode 100644 index c369c7d9..00000000 --- a/game/addons/mat_maker_gd/nodes/material_maker_nodes/voronoi.mmg +++ /dev/null @@ -1,127 +0,0 @@ -{ - "name": "voronoi", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "intensity": 1, - "randomness": 0.85, - "scale_x": 4, - "scale_y": 5, - "stretch_x": 1, - "stretch_y": 1 - }, - "shader_model": { - "code": "vec4 $(name_uv)_xyzw = voronoi($uv, vec2($scale_x, $scale_y), vec2($stretch_y, $stretch_x), $intensity, $randomness, $seed);", - "global": "// Based on https://www.shadertoy.com/view/ldl3W8\n// The MIT License\n// Copyright © 2013 Inigo Quilez\nvec3 iq_voronoi(vec2 x, vec2 size, vec2 stretch, float randomness, vec2 seed) {\n vec2 n = floor(x);\n vec2 f = fract(x);\n\n\tvec2 mg, mr, mc;\n float md = 8.0;\n for (int j=-1; j<=1; j++)\n for (int i=-1; i<=1; i++) {\n vec2 g = vec2(float(i),float(j));\n\t\tvec2 o = randomness*rand2(seed + mod(n + g + size, size));\n\t\tvec2 c = g + o;\n vec2 r = c - f;\n\t\tvec2 rr = r*stretch;\n float d = dot(rr,rr);\n\n if (d0.00001)\n \t\tmd = min(md, dot(0.5*(mr+r)*stretch, normalize((r-mr)*stretch)));\n }\n\n return vec3(md, mc+n);\n}\n\nvec4 voronoi(vec2 uv, vec2 size, vec2 stretch, float intensity, float randomness, float seed) {\n uv *= size;\n\tvec3 v = iq_voronoi(uv, size, stretch, randomness, rand2(vec2(seed, 1.0-seed)));\n\treturn vec4(v.yz, intensity*length((uv-v.yz)*stretch), v.x);\n}\n", - "inputs": [ - - ], - "instance": "", - "longdesc": "Generates several images from a tileable voronoi noise", - "name": "Voronoi", - "outputs": [ - { - "f": "$(name_uv)_xyzw.z", - "longdesc": "A greyscale pattern based on the distance to cell centers", - "shortdesc": "Nodes", - "type": "f" - }, - { - "f": "$(name_uv)_xyzw.w", - "longdesc": "A greyscale pattern based on the distance to borders", - "shortdesc": "Borders", - "type": "f" - }, - { - "longdesc": "A color pattern that assigns a random color to each cell", - "rgb": "rand3(fract(floor($(name_uv)_xyzw.xy)/vec2($scale_x, $scale_y)))", - "shortdesc": "Random color", - "type": "rgb" - }, - { - "longdesc": "An output that should be plugged into a Fill companion node", - "rgba": "vec4(fract(($(name_uv)_xyzw.xy-1.0)/vec2($scale_x, $scale_y)), vec2(2.0)/vec2($scale_x, $scale_y))", - "shortdesc": "Fill", - "type": "rgba" - } - ], - "parameters": [ - { - "control": "None", - "default": 4, - "label": "Scale X", - "longdesc": "The scale along the X axis", - "max": 32, - "min": 1, - "name": "scale_x", - "shortdesc": "Scale.x", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 4, - "label": "Scale Y", - "longdesc": "The scale along the Y axis", - "max": 32, - "min": 1, - "name": "scale_y", - "shortdesc": "Scale.y", - "step": 1, - "type": "float" - }, - { - "control": "None", - "default": 1, - "label": "Stretch X", - "longdesc": "The stretch factor along the X axis", - "max": 1, - "min": 0.01, - "name": "stretch_x", - "shortdesc": "Stretch.x", - "step": 0.01, - "type": "float" - }, - { - "control": "None", - "default": 1, - "label": "Stretch Y", - "longdesc": "The stretch factor along the Y axis", - "max": 1, - "min": 0.01, - "name": "stretch_y", - "shortdesc": "Stretch.y", - "step": 0.01, - "type": "float" - }, - { - "control": "None", - "default": 0.75, - "label": "Intensity", - "longdesc": "A value factor for greyscale outputs", - "max": 1, - "min": 0, - "name": "intensity", - "shortdesc": "Intensity", - "step": 0.01, - "type": "float" - }, - { - "control": "None", - "default": 1, - "label": "Randomness", - "longdesc": "The randomness of cell centers positions", - "max": 1, - "min": 0, - "name": "randomness", - "shortdesc": "Randomness", - "step": 0.01, - "type": "float" - } - ], - "shortdesc": "Voronoi Noise" - }, - "type": "shader" -} \ No newline at end of file