From fdac5e5e85588e4079cfdb5b4a01465e9513cbca Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 2 Oct 2021 16:59:50 +0200 Subject: [PATCH] Moved all fbm related calculations to a new noise_fbm class. --- .../mat_maker_gd/nodes/common/commons.gd | 165 ---------- .../mat_maker_gd/nodes/common/noise_fbm.gd | 309 ++++++++++++++++++ .../mat_maker_gd/nodes/noise/noise_FBM.gd | 138 +------- 3 files changed, 318 insertions(+), 294 deletions(-) create mode 100644 game/addons/mat_maker_gd/nodes/common/noise_fbm.gd diff --git a/game/addons/mat_maker_gd/nodes/common/commons.gd b/game/addons/mat_maker_gd/nodes/common/commons.gd index 4080f5ef..a2191b67 100644 --- a/game/addons/mat_maker_gd/nodes/common/commons.gd +++ b/game/addons/mat_maker_gd/nodes/common/commons.gd @@ -264,171 +264,6 @@ static func perlin(uv : Vector2, size : Vector2, iterations : int, persistence : return rv / acc; - -static func fbm_value(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - var p00 : float = rand(modv2(o, size)); - var p01 : float = rand(modv2(o + Vector2(0.0, 1.0), size)); - var p10 : float = rand(modv2(o + Vector2(1.0, 0.0), size)); - var p11 : float = rand(modv2(o + Vector2(1.0, 1.0), size)); - - var t : Vector2 = f * f * (Vector2(3, 3) - 2.0 * f); - return lerp(lerp(p00, p10, t.x), lerp(p01, p11, t.x), t.y); - -static func fbm_perlin(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - var a00 : float = rand(modv2(o, size)) * 6.28318530718; - var a01 : float = rand(modv2(o + Vector2(0.0, 1.0), size)) * 6.28318530718; - var a10 : float = rand(modv2(o + Vector2(1.0, 0.0), size)) * 6.28318530718; - var a11 : float = rand(modv2(o + Vector2(1.0, 1.0), size)) * 6.28318530718; - var v00 : Vector2 = Vector2(cos(a00), sin(a00)); - var v01 : Vector2 = Vector2(cos(a01), sin(a01)); - var v10 : Vector2 = Vector2(cos(a10), sin(a10)); - var v11 : Vector2 = Vector2(cos(a11), sin(a11)); - var p00 : float = v00.dot(f); - var p01 : float = v01.dot(f - Vector2(0.0, 1.0)); - var p10 : float = v10.dot(f - Vector2(1.0, 0.0)); - var p11 : float = v11.dot(f - Vector2(1.0, 1.0)); - - var t : Vector2 = f * f * (Vector2(3, 3) - 2.0 * f); - - return 0.5 + lerp(lerp(p00, p10, t.x), lerp(p01, p11, t.x), t.y); - - -static func fbm_cellular(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - var min_dist : float = 2.0; - - for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { - var x : float = xx - - for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { - var y : float = yy - - var node : Vector2 = rand2(modv2(o + Vector2(x, y), size)) + Vector2(x, y); - var dist : float = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y); - min_dist = min(min_dist, dist); - - return min_dist; - -static func fbm_cellular2(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - - var min_dist1 : float = 2.0; - var min_dist2 : float = 2.0; - - for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { - var x : float = xx - - for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { - var y : float = yy - - var node : Vector2 = rand2(modv2(o + Vector2(x, y), size)) + Vector2(x, y); - - var dist : float = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y); - - if (min_dist1 > dist): - min_dist2 = min_dist1; - min_dist1 = dist; - elif (min_dist2 > dist): - min_dist2 = dist; - - return min_dist2-min_dist1; - -static func fbm_cellular3(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - - var min_dist : float = 2.0; - - for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { - var x : float = xx - - for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { - var y : float = yy - - var node : Vector2 = rand2(modv2(o + Vector2(x, y), size))*0.5 + Vector2(x, y); - - var dist : float = abs((f - node).x) + abs((f - node).y); - - min_dist = min(min_dist, dist); - - return min_dist; - -static func fbm_cellular4(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - - var min_dist1 : float = 2.0; - var min_dist2 : float = 2.0; - - for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { - var x : float = xx - - for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { - var y : float = yy - - var node : Vector2 = rand2(modv2(o + Vector2(x, y), size))*0.5 + Vector2(x, y); - - var dist : float = abs((f - node).x) + abs((f - node).y); - - if (min_dist1 > dist): - min_dist2 = min_dist1; - min_dist1 = dist; - elif (min_dist2 > dist): - min_dist2 = dist; - - return min_dist2 - min_dist1; - -static func fbm_cellular5(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - - var min_dist : float = 2.0; - - for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { - var x : float = xx - - for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { - var y : float = yy - - var node : Vector2 = rand2(modv2(o + Vector2(x, y), size)) + Vector2(x, y); - var dist : float = max(abs((f - node).x), abs((f - node).y)); - min_dist = min(min_dist, dist); - - return min_dist; - - - -static func fbm_cellular6(coord : Vector2, size : Vector2, pseed : float) -> float: - var o : Vector2 = floorv2(coord) + rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; - var f : Vector2 = fractv2(coord); - - var min_dist1 : float = 2.0; - var min_dist2 : float = 2.0; - - for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { - var x : float = xx - - for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { - var y : float = yy - - var node : Vector2 = rand2(modv2(o + Vector2(x, y), size)) + Vector2(x, y); - var dist : float = max(abs((f - node).x), abs((f - node).y)); - - if (min_dist1 > dist): - min_dist2 = min_dist1; - min_dist1 = dist; - elif (min_dist2 > dist): - min_dist2 = dist; - - return min_dist2 - min_dist1; - - static func perlin_color(uv : Vector2, size : Vector2, iterations : int, persistence : float, pseed : int) -> Vector3: var seed2 : Vector2 = rand2(Vector2(float(pseed), 1.0 - float(pseed))); var rv : Vector3 = Vector3(); diff --git a/game/addons/mat_maker_gd/nodes/common/noise_fbm.gd b/game/addons/mat_maker_gd/nodes/common/noise_fbm.gd new file mode 100644 index 00000000..57eb6ec5 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/common/noise_fbm.gd @@ -0,0 +1,309 @@ +extends Reference + +const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") + +static func fbmval(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = fbmf(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func perlin(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = perlinf(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func cellular(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = cellularf(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func cellular2(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = cellular2f(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func cellular3(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = cellular3f(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func cellular4(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = cellular4f(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func cellular5(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = cellular5f(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func cellular6(uv : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> Color: + var f : float = cellular6f(uv, size, octaves, persistence, pseed) + + return Color(f, f, f, 1) + +static func fbmf(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_value(coord * size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func perlinf(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_perlin(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func cellularf(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_cellular(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func cellular2f(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_cellular2(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func cellular3f(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_cellular3(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func cellular4f(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_cellular4(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func cellular5f(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_cellular5(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + +static func cellular6f(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: + var normalize_factor : float = 0.0; + var value : float = 0.0; + var scale : float = 1.0; + + for i in range(octaves):# (int i = 0; i < octaves; i++) { + value += fbm_cellular6(coord*size, size, pseed) * scale; + normalize_factor += scale; + size *= 2.0; + scale *= persistence; + + return value / normalize_factor; + + +static func fbm_value(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + var p00 : float = Commons.rand(Commons.modv2(o, size)); + var p01 : float = Commons.rand(Commons.modv2(o + Vector2(0.0, 1.0), size)); + var p10 : float = Commons.rand(Commons.modv2(o + Vector2(1.0, 0.0), size)); + var p11 : float = Commons.rand(Commons.modv2(o + Vector2(1.0, 1.0), size)); + + var t : Vector2 = f * f * (Vector2(3, 3) - 2.0 * f); + return lerp(lerp(p00, p10, t.x), lerp(p01, p11, t.x), t.y); + +static func fbm_perlin(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + var a00 : float = Commons.rand(Commons.modv2(o, size)) * 6.28318530718; + var a01 : float = Commons.rand(Commons.modv2(o + Vector2(0.0, 1.0), size)) * 6.28318530718; + var a10 : float = Commons.rand(Commons.modv2(o + Vector2(1.0, 0.0), size)) * 6.28318530718; + var a11 : float = Commons.rand(Commons.modv2(o + Vector2(1.0, 1.0), size)) * 6.28318530718; + var v00 : Vector2 = Vector2(cos(a00), sin(a00)); + var v01 : Vector2 = Vector2(cos(a01), sin(a01)); + var v10 : Vector2 = Vector2(cos(a10), sin(a10)); + var v11 : Vector2 = Vector2(cos(a11), sin(a11)); + var p00 : float = v00.dot(f); + var p01 : float = v01.dot(f - Vector2(0.0, 1.0)); + var p10 : float = v10.dot(f - Vector2(1.0, 0.0)); + var p11 : float = v11.dot(f - Vector2(1.0, 1.0)); + + var t : Vector2 = f * f * (Vector2(3, 3) - 2.0 * f); + + return 0.5 + lerp(lerp(p00, p10, t.x), lerp(p01, p11, t.x), t.y); + + +static func fbm_cellular(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + var min_dist : float = 2.0; + + for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { + var x : float = xx + + for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { + var y : float = yy + + var node : Vector2 = Commons.rand2(Commons.modv2(o + Vector2(x, y), size)) + Vector2(x, y); + var dist : float = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y); + min_dist = min(min_dist, dist); + + return min_dist; + +static func fbm_cellular2(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + + var min_dist1 : float = 2.0; + var min_dist2 : float = 2.0; + + for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { + var x : float = xx + + for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { + var y : float = yy + + var node : Vector2 = Commons.rand2(Commons.modv2(o + Vector2(x, y), size)) + Vector2(x, y); + + var dist : float = sqrt((f - node).x * (f - node).x + (f - node).y * (f - node).y); + + if (min_dist1 > dist): + min_dist2 = min_dist1; + min_dist1 = dist; + elif (min_dist2 > dist): + min_dist2 = dist; + + return min_dist2-min_dist1; + +static func fbm_cellular3(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + + var min_dist : float = 2.0; + + for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { + var x : float = xx + + for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { + var y : float = yy + + var node : Vector2 = Commons.rand2(Commons.modv2(o + Vector2(x, y), size))*0.5 + Vector2(x, y); + + var dist : float = abs((f - node).x) + abs((f - node).y); + + min_dist = min(min_dist, dist); + + return min_dist; + +static func fbm_cellular4(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + + var min_dist1 : float = 2.0; + var min_dist2 : float = 2.0; + + for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { + var x : float = xx + + for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { + var y : float = yy + + var node : Vector2 = Commons.rand2(Commons.modv2(o + Vector2(x, y), size))*0.5 + Vector2(x, y); + + var dist : float = abs((f - node).x) + abs((f - node).y); + + if (min_dist1 > dist): + min_dist2 = min_dist1; + min_dist1 = dist; + elif (min_dist2 > dist): + min_dist2 = dist; + + return min_dist2 - min_dist1; + +static func fbm_cellular5(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + + var min_dist : float = 2.0; + + for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { + var x : float = xx + + for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { + var y : float = yy + + var node : Vector2 = Commons.rand2(Commons.modv2(o + Vector2(x, y), size)) + Vector2(x, y); + var dist : float = max(abs((f - node).x), abs((f - node).y)); + min_dist = min(min_dist, dist); + + return min_dist; + +static func fbm_cellular6(coord : Vector2, size : Vector2, pseed : float) -> float: + var o : Vector2 = Commons.floorv2(coord) + Commons.rand2(Vector2(float(pseed), 1.0 - float(pseed))) + size; + var f : Vector2 = Commons.fractv2(coord); + + var min_dist1 : float = 2.0; + var min_dist2 : float = 2.0; + + for xx in range(-1, 2): #(float x = -1.0; x <= 1.0; x++) { + var x : float = xx + + for yy in range(-1, 2):#(float y = -1.0; y <= 1.0; y++) { + var y : float = yy + + var node : Vector2 = Commons.rand2(Commons.modv2(o + Vector2(x, y), size)) + Vector2(x, y); + var dist : float = max(abs((f - node).x), abs((f - node).y)); + + if (min_dist1 > dist): + min_dist2 = min_dist1; + min_dist1 = dist; + elif (min_dist2 > dist): + min_dist2 = dist; + + return min_dist2 - min_dist1; diff --git a/game/addons/mat_maker_gd/nodes/noise/noise_FBM.gd b/game/addons/mat_maker_gd/nodes/noise/noise_FBM.gd index 2eddfd2b..5ccfcb59 100644 --- a/game/addons/mat_maker_gd/nodes/noise/noise_FBM.gd +++ b/game/addons/mat_maker_gd/nodes/noise/noise_FBM.gd @@ -1,7 +1,7 @@ tool extends TextureRect -var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") +var NoiseFBM = preload("res://addons/mat_maker_gd/nodes/common/noise_fbm.gd") var image : Image var tex : ImageTexture @@ -64,148 +64,28 @@ var p_o33355_iterations = 5.000000000; var p_o33355_persistence = 0.500000000; func fbmval(uv : Vector2) -> Color: - var f : float = o33355_fbm(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.fbmval(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func perlin(uv : Vector2) -> Color: - var f : float = o33355_perlin(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.perlin(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func cellular(uv : Vector2) -> Color: - var f : float = o33355_cellular(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.cellular(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func cellular2(uv : Vector2) -> Color: - var f : float = o33355_cellular2(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.cellular2(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func cellular3(uv : Vector2) -> Color: - var f : float = o33355_cellular3(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.cellular3(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func cellular4(uv : Vector2) -> Color: - var f : float = o33355_cellular4(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.cellular4(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func cellular5(uv : Vector2) -> Color: - var f : float = o33355_cellular5(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) + return NoiseFBM.cellular5(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func cellular6(uv : Vector2) -> Color: - var f : float = o33355_cellular6(((uv)), Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)); - - return Color(f, f, f, 1) - -func o33355_fbm(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_value(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_perlin(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_perlin(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_cellular(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_cellular(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_cellular2(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_cellular2(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_cellular3(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_cellular3(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_cellular4(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_cellular4(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_cellular5(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_cellular5(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; - -func o33355_cellular6(coord : Vector2, size : Vector2, octaves : int, persistence : float, pseed : float) -> float: - var normalize_factor : float = 0.0; - var value : float = 0.0; - var scale : float = 1.0; - - for i in range(octaves):# (int i = 0; i < octaves; i++) { - value += Commons.fbm_cellular6(coord*size, size, pseed) * scale; - normalize_factor += scale; - size *= 2.0; - scale *= persistence; - - return value / normalize_factor; + return NoiseFBM.cellular6(uv, Vector2(p_o33355_scale_x, p_o33355_scale_y), int(p_o33355_iterations), p_o33355_persistence, float(seed_o33355)) func reffg(): return false