mirror of
https://github.com/Relintai/broken_seals.git
synced 2025-03-15 15:56:21 +01:00
Patterns now also use Commons.gd.
This commit is contained in:
parent
bb338ea1aa
commit
0869d1096b
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -135,7 +137,7 @@ func brick_corner_uv(uv : Vector2, bmin : Vector2, bmax : Vector2, mortar : floa
|
|||||||
|
|
||||||
r.x = clamp(((0.5 * size.x - mortar) - abs(uv.x - center.x)) / corner, 0, 1)
|
r.x = clamp(((0.5 * size.x - mortar) - abs(uv.x - center.x)) / corner, 0, 1)
|
||||||
r.y = clamp(((0.5 * size.y - mortar) - abs(uv.y - center.y)) / corner, 0, 1)
|
r.y = clamp(((0.5 * size.y - mortar) - abs(uv.y - center.y)) / corner, 0, 1)
|
||||||
r.z = rand(fract(center) + Vector2(pseed, pseed))
|
r.z = Commons.rand(Commons.fract(center) + Vector2(pseed, pseed))
|
||||||
|
|
||||||
return r
|
return r
|
||||||
|
|
||||||
@ -178,12 +180,12 @@ func brick_uv(uv : Vector2, bmin : Vector2, bmax : Vector2, pseed : float) -> Ve
|
|||||||
var x : float = 0.5+ (uv.x - center.x) / max_size
|
var x : float = 0.5+ (uv.x - center.x) / max_size
|
||||||
var y : float = 0.5+ (uv.y - center.y) /max_size
|
var y : float = 0.5+ (uv.y - center.y) /max_size
|
||||||
|
|
||||||
return Vector3(x, y, rand(fract(center) + Vector2(pseed, pseed)))
|
return Vector3(x, y, Commons.rand(Commons.fract(center) + Vector2(pseed, pseed)))
|
||||||
|
|
||||||
func bricks_rb(uv : Vector2, count : Vector2, repeat : float, offset : float) -> Color:
|
func bricks_rb(uv : Vector2, count : Vector2, repeat : float, offset : float) -> Color:
|
||||||
count *= repeat
|
count *= repeat
|
||||||
|
|
||||||
var x_offset : float = offset * step(0.5, fractf(uv.y * count.y * 0.5))
|
var x_offset : float = offset * Commons.step(0.5, Commons.fractf(uv.y * count.y * 0.5))
|
||||||
|
|
||||||
var bmin : Vector2
|
var bmin : Vector2
|
||||||
bmin.x = floor(uv.x * count.x - x_offset)
|
bmin.x = floor(uv.x * count.x - x_offset)
|
||||||
@ -198,8 +200,8 @@ func bricks_rb(uv : Vector2, count : Vector2, repeat : float, offset : float) ->
|
|||||||
func bricks_rb2(uv : Vector2, count : Vector2, repeat : float, offset : float) -> Color:
|
func bricks_rb2(uv : Vector2, count : Vector2, repeat : float, offset : float) -> Color:
|
||||||
count *= repeat
|
count *= repeat
|
||||||
|
|
||||||
var x_offset : float = offset * step(0.5, fractf(uv.y * count.y * 0.5))
|
var x_offset : float = offset * Commons.step(0.5, Commons.fractf(uv.y * count.y * 0.5))
|
||||||
count.x = count.x * (1.0+step(0.5, fractf(uv.y * count.y * 0.5)))
|
count.x = count.x * (1.0+Commons.step(0.5, Commons.fractf(uv.y * count.y * 0.5)))
|
||||||
var bmin : Vector2 = Vector2()
|
var bmin : Vector2 = Vector2()
|
||||||
|
|
||||||
bmin.x = floor(uv.x * count.x - x_offset)
|
bmin.x = floor(uv.x * count.x - x_offset)
|
||||||
@ -217,7 +219,7 @@ func bricks_hb(uv : Vector2, count : Vector2, repeat : float, offset : float) ->
|
|||||||
var c : float = pc * repeat
|
var c : float = pc * repeat
|
||||||
|
|
||||||
var corner : Vector2 = Vector2(floor(uv.x * c), floor(uv.y * c))
|
var corner : Vector2 = Vector2(floor(uv.x * c), floor(uv.y * c))
|
||||||
var cdiff : float = modf(corner.x - corner.y, pc)
|
var cdiff : float = Commons.modf(corner.x - corner.y, pc)
|
||||||
|
|
||||||
if (cdiff < count.x):
|
if (cdiff < count.x):
|
||||||
var col : Color = Color()
|
var col : Color = Color()
|
||||||
@ -247,7 +249,7 @@ func bricks_bw(uv : Vector2, count : Vector2, repeat : float, offset : float) ->
|
|||||||
var corner2 : Vector2 = Vector2(count.x * floor(repeat* 2.0 * uv.x), count.y * floor(repeat * 2.0 * uv.y))
|
var corner2 : Vector2 = Vector2(count.x * floor(repeat* 2.0 * uv.x), count.y * floor(repeat * 2.0 * uv.y))
|
||||||
|
|
||||||
var tmp : Vector2 = Vector2(floor(repeat * 2.0 * uv.x), floor(repeat * 2.0 * uv.y))
|
var tmp : Vector2 = Vector2(floor(repeat * 2.0 * uv.x), floor(repeat * 2.0 * uv.y))
|
||||||
var cdiff : float = modf(tmp.dot(Vector2(1, 1)), 2.0)
|
var cdiff : float = Commons.modf(tmp.dot(Vector2(1, 1)), 2.0)
|
||||||
|
|
||||||
var corner : Vector2
|
var corner : Vector2
|
||||||
var size : Vector2
|
var size : Vector2
|
||||||
@ -289,63 +291,6 @@ func bricks_sb(uv : Vector2, count : Vector2, repeat : float, offset : float) ->
|
|||||||
|
|
||||||
return Color(corner.x / c.x, corner.y / c.y, (corner.x + size.x) / c.x, (corner.y + size.y) / c.y)
|
return Color(corner.x / c.x, corner.y / c.y, (corner.x + size.x) / c.x, (corner.y + size.y) / c.y)
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fract(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractf(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fractf(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
#
|
#
|
||||||
#vec4 $(name_uv)_rect = bricks_$pattern($uv, vec2($columns, $rows), $repeat, $row_offset);
|
#vec4 $(name_uv)_rect = bricks_$pattern($uv, vec2($columns, $rows), $repeat, $row_offset);
|
||||||
#vec4 $(name_uv) = brick($uv, $(name_uv)_rect.xy, $(name_uv)_rect.zw, $mortar*$mortar_map($uv), $round*$round_map($uv), max(0.001, $bevel*$bevel_map($uv)));
|
#vec4 $(name_uv) = brick($uv, $(name_uv)_rect.xy, $(name_uv)_rect.zw, $mortar*$mortar_map($uv), $round*$round_map($uv), max(0.001, $bevel*$bevel_map($uv)));
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -68,18 +70,18 @@ func beehive_2_col(uv : Vector2) -> Color:
|
|||||||
|
|
||||||
var f : float = 1.0 - 2.0 * beehive_dist(Vector2(center.r, center.g));
|
var f : float = 1.0 - 2.0 * beehive_dist(Vector2(center.r, center.g));
|
||||||
|
|
||||||
var v : Vector3 = rand3(fractv2(Vector2(center.b, center.a) / Vector2(p_o80035_sx, p_o80035_sy)) + Vector2(float(seed_o80035),float(seed_o80035)));
|
var v : Vector3 = Commons.rand3(Commons.fractv2(Vector2(center.b, center.a) / Vector2(p_o80035_sx, p_o80035_sy)) + Vector2(float(seed_o80035),float(seed_o80035)));
|
||||||
|
|
||||||
return Color(v.x, v.y, v.z, 1)
|
return Color(v.x, v.y, v.z, 1)
|
||||||
|
|
||||||
func beehive_3_col(uv : Vector2) -> Color:
|
func beehive_3_col(uv : Vector2) -> Color:
|
||||||
var o80035_0_uv : Vector2 = ((uv)) * Vector2(p_o80035_sx, p_o80035_sy * 1.73205080757);
|
var o80035_0_uv : Vector2 = ((uv)) * Vector2(p_o80035_sx, p_o80035_sy * 1.73205080757);
|
||||||
var center : Color = beehive_center(o80035_0_uv);
|
var center : Color = Commons.beehive_center(o80035_0_uv);
|
||||||
|
|
||||||
#var f : float = 1.0 - 2.0 * beehive_dist(Vector2(center.r, center.g));
|
#var f : float = 1.0 - 2.0 * beehive_dist(Vector2(center.r, center.g));
|
||||||
|
|
||||||
var v1 : Vector2 = Vector2(0.5, 0.5) + Vector2(center.r, center.g)
|
var v1 : Vector2 = Vector2(0.5, 0.5) + Vector2(center.r, center.g)
|
||||||
var ff : float = rand(fractv2(Vector2(center.b, center.a) / Vector2(p_o80035_sx, p_o80035_sy)) + Vector2(float(seed_o80035), float(seed_o80035)))
|
var ff : float = Commons.rand(Commons.fractv2(Vector2(center.b, center.a) / Vector2(p_o80035_sx, p_o80035_sy)) + Vector2(float(seed_o80035), float(seed_o80035)))
|
||||||
|
|
||||||
var c : Color = Color(v1.x, v1.y, ff, ff);
|
var c : Color = Color(v1.x, v1.y, ff, ff);
|
||||||
|
|
||||||
@ -89,7 +91,7 @@ func beehive_3_col(uv : Vector2) -> Color:
|
|||||||
func beehive_dist(p : Vector2) -> float:
|
func beehive_dist(p : Vector2) -> float:
|
||||||
var s : Vector2 = Vector2(1.0, 1.73205080757);
|
var s : Vector2 = Vector2(1.0, 1.73205080757);
|
||||||
|
|
||||||
p = absv2(p);
|
p = Commons.absv2(p);
|
||||||
|
|
||||||
return max(p.dot(s*.5), p.x);
|
return max(p.dot(s*.5), p.x);
|
||||||
|
|
||||||
@ -98,7 +100,7 @@ func beehive_center(p : Vector2) -> Color:
|
|||||||
|
|
||||||
var hC : Color = Color(p.x, p.y, p.x - 0.5, p.y - 1) / Color(s.x, s.y, s.x, s.y);
|
var hC : Color = Color(p.x, p.y, p.x - 0.5, p.y - 1) / Color(s.x, s.y, s.x, s.y);
|
||||||
|
|
||||||
hC = floorc(Color(p.x, p.y, p.x - 0.5, p.y - 1) / Color(s.x, s.y, s.x, s.y)) + Color(0.5, 0.5, 0.5, 0.5);
|
hC = Commons.floorc(Color(p.x, p.y, p.x - 0.5, p.y - 1) / Color(s.x, s.y, s.x, s.y)) + Color(0.5, 0.5, 0.5, 0.5);
|
||||||
|
|
||||||
var v1 : Vector2 = Vector2(p.x - hC.r * s.x, p.y - hC.g * s.y)
|
var v1 : Vector2 = Vector2(p.x - hC.r * s.x, p.y - hC.g * s.y)
|
||||||
var v2 : Vector2 = Vector2(p.x - (hC.b + 0.5) * s.x, p.y - (hC.a + 0.5) * s.y)
|
var v2 : Vector2 = Vector2(p.x - (hC.b + 0.5) * s.x, p.y - (hC.a + 0.5) * s.y)
|
||||||
@ -112,169 +114,6 @@ func beehive_center(p : Vector2) -> Color:
|
|||||||
|
|
||||||
#return dot(h.xy, h.xy) < dot(h.zw, h.zw) ? Color(h.xy, hC.xy) : Color(h.zw, hC.zw + 9.73);
|
#return dot(h.xy, h.xy) < dot(h.zw, h.zw) ? Color(h.xy, hC.xy) : Color(h.zw, hC.zw + 9.73);
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func floorc(a : Color) -> Color:
|
|
||||||
var v : Color = Color()
|
|
||||||
|
|
||||||
v.r = floor(a.r)
|
|
||||||
v.g = floor(a.g)
|
|
||||||
v.b = floor(a.b)
|
|
||||||
v.a = floor(a.a)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fract(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fract(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand2(x : Vector2) -> Vector2:
|
|
||||||
return fractv2(cosv2(Vector2(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -123,20 +125,20 @@ func wave_sine(x : float) -> float:
|
|||||||
return 0.5-0.5*cos(3.14159265359*2.0*x);
|
return 0.5-0.5*cos(3.14159265359*2.0*x);
|
||||||
|
|
||||||
func wave_triangle(x : float) -> float:
|
func wave_triangle(x : float) -> float:
|
||||||
x = fractf(x);
|
x = Commons.fractf(x);
|
||||||
return min(2.0*x, 2.0-2.0*x);
|
return min(2.0*x, 2.0-2.0*x);
|
||||||
|
|
||||||
func wave_sawtooth(x : float) -> float:
|
func wave_sawtooth(x : float) -> float:
|
||||||
return fractf(x);
|
return Commons.fractf(x);
|
||||||
|
|
||||||
func wave_square(x : float) -> float:
|
func wave_square(x : float) -> float:
|
||||||
if (fractf(x) < 0.5):
|
if (Commons.fractf(x) < 0.5):
|
||||||
return 0.0
|
return 0.0
|
||||||
else:
|
else:
|
||||||
return 1.0
|
return 1.0
|
||||||
|
|
||||||
func wave_bounce(x : float) -> float:
|
func wave_bounce(x : float) -> float:
|
||||||
x = 2.0*(fractf(x)-0.5);
|
x = 2.0*(Commons.fractf(x)-0.5);
|
||||||
return sqrt(1.0-x*x);
|
return sqrt(1.0-x*x);
|
||||||
|
|
||||||
func mix_mul(x : float, y : float) -> float:
|
func mix_mul(x : float, y : float) -> float:
|
||||||
@ -158,148 +160,6 @@ func mix_pow(x : float, y : float) -> float:
|
|||||||
return pow(x, y);
|
return pow(x, y);
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fract(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractf(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fractf(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -58,164 +60,11 @@ func runecol(uv : Vector2) -> Color:
|
|||||||
return Color(f, f, f, 1)
|
return Color(f, f, f, 1)
|
||||||
|
|
||||||
func IChing(uv : Vector2, pseed : float) -> float:
|
func IChing(uv : Vector2, pseed : float) -> float:
|
||||||
var value : int = int(32.0 * rand(floorv2(uv) + Vector2(pseed, pseed)));
|
var value : int = int(32.0 * Commons.rand(Commons.floorv2(uv) + Vector2(pseed, pseed)));
|
||||||
var base : float = step(0.5, fract(fract(uv.y)*6.5))*step(0.04, fract(uv.y+0.02)) * step(0.2, fract(uv.x+0.1));
|
var base : float = Commons.step(0.5, Commons.fract(Commons.fract(uv.y)*6.5))*Commons.step(0.04, Commons.fract(uv.y+0.02)) * Commons.step(0.2, Commons.fract(uv.x+0.1));
|
||||||
var bit : int = int(fract(uv.y)*6.5);
|
var bit : int = int(Commons.fract(uv.y)*6.5);
|
||||||
|
|
||||||
return base * step(0.1*step(float(bit & value), 0.5), fract(uv.x+0.55));
|
return base * Commons.step(0.1*Commons.step(float(bit & value), 0.5), Commons.fract(uv.x+0.55));
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fract(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fract(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand2(x : Vector2) -> Vector2:
|
|
||||||
return fractv2(cosv2(Vector2(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -72,20 +74,20 @@ func ThickLine(uv : Vector2, posA : Vector2, posB : Vector2, radiusInv : float)
|
|||||||
# passes back gray in x and derivates for lighting in yz
|
# passes back gray in x and derivates for lighting in yz
|
||||||
func Rune(uv : Vector2) -> float:
|
func Rune(uv : Vector2) -> float:
|
||||||
var finalLine : float = 0.0;
|
var finalLine : float = 0.0;
|
||||||
var pseed : Vector2 = floorv2(uv) - Vector2(0.41, 0.41);
|
var pseed : Vector2 = Commons.floorv2(uv) - Vector2(0.41, 0.41);
|
||||||
|
|
||||||
uv = fractv2(uv);
|
uv = Commons.fractv2(uv);
|
||||||
|
|
||||||
for i in range(4):# (int i = 0; i < 4; i++): # // number of strokes
|
for i in range(4):# (int i = 0; i < 4; i++): # // number of strokes
|
||||||
var posA : Vector2 = rand2(floorv2(pseed + Vector2(0.5, 0.5)));
|
var posA : Vector2 = Commons.rand2(Commons.floorv2(pseed + Vector2(0.5, 0.5)));
|
||||||
var posB : Vector2 = rand2(floorv2(pseed + Vector2(1.5, 1.5)));
|
var posB : Vector2 = Commons.rand2(Commons.floorv2(pseed + Vector2(1.5, 1.5)));
|
||||||
pseed.x += 2.0;
|
pseed.x += 2.0;
|
||||||
pseed.y += 2.0;
|
pseed.y += 2.0;
|
||||||
|
|
||||||
# expand the range and mod it to get a nicely distributed random number - hopefully. :)
|
# expand the range and mod it to get a nicely distributed random number - hopefully. :)
|
||||||
|
|
||||||
posA = fractv2(posA * 128.0);
|
posA = Commons.fractv2(posA * 128.0);
|
||||||
posB = fractv2(posB * 128.0);
|
posB = Commons.fractv2(posB * 128.0);
|
||||||
|
|
||||||
# each rune touches the edge of its box on all 4 sides
|
# each rune touches the edge of its box on all 4 sides
|
||||||
if (i == 0):
|
if (i == 0):
|
||||||
@ -104,8 +106,8 @@ func Rune(uv : Vector2) -> float:
|
|||||||
|
|
||||||
var snaps : Vector2 = Vector2(2.0, 3.0);
|
var snaps : Vector2 = Vector2(2.0, 3.0);
|
||||||
|
|
||||||
posA = (floorv2(posA * snaps) + Vector2(0.5, 0.5)) / snaps; # + 0.5 to center it in a grid cell
|
posA = (Commons.floorv2(posA * snaps) + Vector2(0.5, 0.5)) / snaps; # + 0.5 to center it in a grid cell
|
||||||
posB = (floorv2(posB * snaps) + Vector2(0.5, 0.5)) / snaps;
|
posB = (Commons.floorv2(posB * snaps) + Vector2(0.5, 0.5)) / snaps;
|
||||||
|
|
||||||
#if (distance(posA, posB) < 0.0001) continue; // eliminate dots.
|
#if (distance(posA, posB) < 0.0001) continue; // eliminate dots.
|
||||||
# Dots (degenerate lines) are not cross-GPU safe without adding 0.001 - divide by 0 error.
|
# Dots (degenerate lines) are not cross-GPU safe without adding 0.001 - divide by 0 error.
|
||||||
@ -114,160 +116,6 @@ func Rune(uv : Vector2) -> float:
|
|||||||
|
|
||||||
return finalLine;
|
return finalLine;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fract(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fract(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand2(x : Vector2) -> Vector2:
|
|
||||||
return fractv2(cosv2(Vector2(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -65,9 +67,9 @@ func scratch(uv : Vector2, size : Vector2, waviness : float, angle : float, rand
|
|||||||
var subdivide : float = floor(1.0/size.x);
|
var subdivide : float = floor(1.0/size.x);
|
||||||
var cut : float = size.x*subdivide;
|
var cut : float = size.x*subdivide;
|
||||||
uv *= subdivide;
|
uv *= subdivide;
|
||||||
var r1 : Vector2 = rand2(floorv2(uv) + pseed);
|
var r1 : Vector2 = Commons.rand2(Commons.floorv2(uv) + pseed);
|
||||||
var r2 : Vector2 = rand2(r1);
|
var r2 : Vector2 = Commons.rand2(r1);
|
||||||
uv = fractv2(uv);
|
uv = Commons.fractv2(uv);
|
||||||
uv = 2.0 * uv - Vector2(1, 1);
|
uv = 2.0 * uv - Vector2(1, 1);
|
||||||
|
|
||||||
var a : float = 6.28*(angle+(r1.x-0.5)*randomness);
|
var a : float = 6.28*(angle+(r1.x-0.5)*randomness);
|
||||||
@ -86,163 +88,11 @@ func scratches(uv : Vector2, layers : int, size : Vector2, waviness : float, ang
|
|||||||
var v : float = 0.0;
|
var v : float = 0.0;
|
||||||
|
|
||||||
for i in range(layers):# (int i = 0; i < layers; ++i) {
|
for i in range(layers):# (int i = 0; i < layers; ++i) {
|
||||||
v = max(v, scratch(fractv2(uv + pseed), size, waviness, angle/360.0, randomness, pseed));
|
v = max(v, scratch(Commons.fractv2(uv + pseed), size, waviness, angle/360.0, randomness, pseed));
|
||||||
pseed = rand2(pseed);
|
pseed = Commons.rand2(pseed);
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fract(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fract(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand2(x : Vector2) -> Vector2:
|
|
||||||
return fractv2(cosv2(Vector2(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -61,168 +63,6 @@ func sinewave(uv : Vector2) -> Color:
|
|||||||
return Color(f, f, f, 1)
|
return Color(f, f, f, 1)
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func floorc(a : Color) -> Color:
|
|
||||||
var v : Color = Color()
|
|
||||||
|
|
||||||
v.r = floor(a.r)
|
|
||||||
v.g = floor(a.g)
|
|
||||||
v.b = floor(a.b)
|
|
||||||
v.a = floor(a.a)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fract(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fract(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand2(x : Vector2) -> Vector2:
|
|
||||||
return fractv2(cosv2(Vector2(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -61,161 +63,18 @@ func trunchet(uv : Vector2) -> Color:
|
|||||||
return col
|
return col
|
||||||
|
|
||||||
func truchet1(uv : Vector2, pseed : Vector2) -> float:
|
func truchet1(uv : Vector2, pseed : Vector2) -> float:
|
||||||
var i : Vector2 = floorv2(uv);
|
var i : Vector2 = Commons.floorv2(uv);
|
||||||
var f : Vector2 = fractv2(uv) - Vector2(0.5, 0.5);
|
var f : Vector2 = Commons.fractv2(uv) - Vector2(0.5, 0.5);
|
||||||
return 1.0 - abs(abs((2.0*step(rand(i+pseed), 0.5)-1.0)*f.x+f.y)-0.5);
|
return 1.0 - abs(abs((2.0*Commons.step(Commons.rand(i+pseed), 0.5)-1.0)*f.x+f.y)-0.5);
|
||||||
|
|
||||||
func truchet2(uv : Vector2, pseed : Vector2) -> float:
|
func truchet2(uv : Vector2, pseed : Vector2) -> float:
|
||||||
var i : Vector2 = floorv2(uv);
|
var i : Vector2 = Commons.floorv2(uv);
|
||||||
var f : Vector2 = fractv2(uv);
|
var f : Vector2 = Commons.fractv2(uv);
|
||||||
var random : float = step(rand(i+pseed), 0.5);
|
var random : float = Commons.step(Commons.rand(i+pseed), 0.5);
|
||||||
f.x *= 2.0 * random-1.0;
|
f.x *= 2.0 * random-1.0;
|
||||||
f.x += 1.0 - random;
|
f.x += 1.0 - random;
|
||||||
return 1.0 - min(abs(f.length() - 0.5), abs((Vector2(1, 1) - f).length() - 0.5));
|
return 1.0 - min(abs(f.length() - 0.5), abs((Vector2(1, 1) - f).length() - 0.5));
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractf(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fractf(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
tool
|
tool
|
||||||
extends TextureRect
|
extends TextureRect
|
||||||
|
|
||||||
|
var Commons = preload("res://addons/mat_maker_gd/nodes/common/commons.gd")
|
||||||
|
|
||||||
var image : Image
|
var image : Image
|
||||||
var tex : ImageTexture
|
var tex : ImageTexture
|
||||||
|
|
||||||
@ -61,153 +63,11 @@ func weavecol(uv : Vector2) -> Color:
|
|||||||
|
|
||||||
func weave(uv : Vector2, count : Vector2, width : float) -> float:
|
func weave(uv : Vector2, count : Vector2, width : float) -> float:
|
||||||
uv *= count;
|
uv *= count;
|
||||||
var c : float = (sin(3.1415926* (uv.x + floor(uv.y)))*0.5+0.5)*step(abs(fract(uv.y)-0.5), width*0.5);
|
var c : float = (sin(3.1415926* (uv.x + floor(uv.y)))*0.5+0.5)*Commons.step(abs(Commons.fract(uv.y)-0.5), width*0.5);
|
||||||
c = max(c, (sin(3.1415926*(1.0+uv.y+floor(uv.x)))*0.5+0.5)*step(abs(fract(uv.x)-0.5), width*0.5));
|
c = max(c, (sin(3.1415926*(1.0+uv.y+floor(uv.x)))*0.5+0.5)*Commons.step(abs(Commons.fract(uv.x)-0.5), width*0.5));
|
||||||
return c;
|
return c;
|
||||||
|
|
||||||
|
|
||||||
func clampv3(v : Vector3, mi : Vector3, ma : Vector3) -> Vector3:
|
|
||||||
v.x = clamp(v.x, mi.x, ma.x)
|
|
||||||
v.y = clamp(v.y, mi.y, ma.y)
|
|
||||||
v.y = clamp(v.z, mi.z, ma.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func floorv2(a : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = floor(a.x)
|
|
||||||
v.y = floor(a.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func maxv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = max(a.x, b.x)
|
|
||||||
v.y = max(a.y, b.y)
|
|
||||||
v.z = max(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func absv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = abs(v.x)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
v.y = abs(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func cosv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = cos(v.x)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
v.y = cos(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modv3(a : Vector3, b : Vector3) -> Vector3:
|
|
||||||
var v : Vector3 = Vector3()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
v.z = modf(a.z, b.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
|
|
||||||
func modv2(a : Vector2, b : Vector2) -> Vector2:
|
|
||||||
var v : Vector2 = Vector2()
|
|
||||||
|
|
||||||
v.x = modf(a.x, b.x)
|
|
||||||
v.y = modf(a.y, b.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func modf(x : float, y : float) -> float:
|
|
||||||
return x - y * floor(x / y)
|
|
||||||
|
|
||||||
func fractv2(v : Vector2) -> Vector2:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fractv3(v : Vector3) -> Vector3:
|
|
||||||
v.x = v.x - floor(v.x)
|
|
||||||
v.y = v.y - floor(v.y)
|
|
||||||
v.z = v.z - floor(v.z)
|
|
||||||
|
|
||||||
return v
|
|
||||||
|
|
||||||
func fract(f : float) -> float:
|
|
||||||
return f - floor(f)
|
|
||||||
|
|
||||||
func rand(x : Vector2) -> float:
|
|
||||||
return fract(cos(x.dot(Vector2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
|
|
||||||
func rand3(x : Vector2) -> Vector3:
|
|
||||||
return fractv3(cosv3(Vector3(x.dot(Vector2(13.9898, 8.141)),
|
|
||||||
x.dot(Vector2(3.4562, 17.398)),
|
|
||||||
x.dot(Vector2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
|
|
||||||
func step(edge : float, x : float) -> float:
|
|
||||||
if x < edge:
|
|
||||||
return 0.0
|
|
||||||
else:
|
|
||||||
return 1.0
|
|
||||||
|
|
||||||
|
|
||||||
#common -----
|
|
||||||
|
|
||||||
#float rand(vec2 x) {
|
|
||||||
# return fract(cos(dot(x, vec2(13.9898, 8.141))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec2 rand2(vec2 x) {
|
|
||||||
# return fract(cos(vec2(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rand3(vec2 x) {
|
|
||||||
# return fract(cos(vec3(dot(x, vec2(13.9898, 8.141)),
|
|
||||||
# dot(x, vec2(3.4562, 17.398)),
|
|
||||||
# dot(x, vec2(13.254, 5.867)))) * 43758.5453);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 rgb2hsv(vec3 c) {
|
|
||||||
# vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
||||||
# vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);
|
|
||||||
# vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);
|
|
||||||
#
|
|
||||||
# float d = q.x - min(q.w, q.y);
|
|
||||||
# float e = 1.0e-10;
|
|
||||||
# return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#vec3 hsv2rgb(vec3 c) {
|
|
||||||
# vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
||||||
# vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
||||||
# return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#end common
|
|
||||||
|
|
||||||
|
|
||||||
func reffg():
|
func reffg():
|
||||||
return false
|
return false
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user