From 9f41deb164df0f24214d669aaaeda4ec8c7e2de2 Mon Sep 17 00:00:00 2001 From: Relintai Date: Tue, 5 Oct 2021 11:54:16 +0200 Subject: [PATCH] Added the current shader code from material maker as a comment to shapes. --- .../mat_maker_gd/nodes/common/shapes.gd | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/game/addons/mat_maker_gd/nodes/common/shapes.gd b/game/addons/mat_maker_gd/nodes/common/shapes.gd index 3775a810..20263b1a 100644 --- a/game/addons/mat_maker_gd/nodes/common/shapes.gd +++ b/game/addons/mat_maker_gd/nodes/common/shapes.gd @@ -3,6 +3,12 @@ extends Reference const Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd") +#float shape_circle(vec2 uv, float sides, float size, float edge) { +# uv = 2.0*uv-1.0;edge = max(edge, 1.0e-8); +# float distance = length(uv); +# return clamp((1.0-distance/size)/edge, 0.0, 1.0); +#} + static func shape_circle(uv : Vector2, sides : float, size : float, edge : float) -> float: uv.x = 2.0 * uv.x - 1.0 uv.y = 2.0 * uv.y - 1.0 @@ -13,6 +19,13 @@ static func shape_circle(uv : Vector2, sides : float, size : float, edge : float return clamp((1.0 - distance / size) / edge, 0.0, 1.0) +#float shape_polygon(vec2 uv, float sides, float size, float edge) { +# uv = 2.0*uv-1.0;edge = max(edge, 1.0e-8); +# float angle = atan(uv.x, uv.y)+3.14159265359; +# float slice = 6.28318530718/sides; +# return clamp((1.0-(cos(floor(0.5+angle/slice)*slice-angle)*length(uv))/size)/edge, 0.0, 1.0); +#} + static func shape_polygon(uv : Vector2, sides : float, size : float, edge : float) -> float: uv.x = 2.0 * uv.x - 1.0 uv.y = 2.0 * uv.y - 1.0 @@ -27,6 +40,13 @@ static func shape_polygon(uv : Vector2, sides : float, size : float, edge : floa return clamp((size - cos(floor(0.5 + angle / slice) * slice - angle) * uv.length()) / (edge * size), 0.0, 1.0) +#float shape_star(vec2 uv, float sides, float size, float edge) { +# uv = 2.0*uv-1.0;edge = max(edge, 1.0e-8); +# float angle = atan(uv.x, uv.y); +# float slice = 6.28318530718/sides; +# return clamp((1.0-(cos(floor(angle*sides/6.28318530718-0.5+2.0*step(fract(angle*sides/6.28318530718), 0.5))*slice-angle)*length(uv))/size)/edge, 0.0, 1.0); +#} + static func shape_star(uv : Vector2, sides : float, size : float, edge : float) -> float: uv.x = 2.0 * uv.x - 1.0 uv.y = 2.0 * uv.y - 1.0 @@ -41,6 +61,13 @@ static func shape_star(uv : Vector2, sides : float, size : float, edge : float) return clamp((size - cos(floor(1.5 + angle / slice - 2.0 * Commons.step(0.5 * slice, Commons.modf(angle, slice))) * slice - angle) * uv.length()) / (edge * size), 0.0, 1.0); +#float shape_curved_star(vec2 uv, float sides, float size, float edge) { +# uv = 2.0*uv-1.0;edge = max(edge, 1.0e-8); +# float angle = 2.0*(atan(uv.x, uv.y)+3.14159265359); +# float slice = 6.28318530718/sides; +# return clamp((1.0-cos(floor(0.5+0.5*angle/slice)*2.0*slice-angle)*length(uv)/size)/edge, 0.0, 1.0); +#} + static func shape_curved_star(uv : Vector2, sides : float, size : float, edge : float) -> float: uv.x = 2.0 * uv.x - 1.0 uv.y = 2.0 * uv.y - 1.0 @@ -55,6 +82,11 @@ static func shape_curved_star(uv : Vector2, sides : float, size : float, edge : return clamp((size - cos(floor(0.5 + 0.5 * angle / slice) * 2.0 * slice - angle) * uv.length())/(edge * size), 0.0, 1.0); +#float shape_rays(vec2 uv, float sides, float size, float edge) { +# uv = 2.0*uv-1.0;edge = 0.5*max(edge, 1.0e-8)*size;float slice = 6.28318530718/sides; +# float angle = mod(atan(uv.x, uv.y)+3.14159265359, slice)/slice; +# return clamp(min((size-angle)/edge, angle/edge), 0.0, 1.0); +#} static func shape_rays(uv : Vector2, sides : float, size : float, edge : float) -> float: