@@ -19,7 +19,7 @@ box st size = let
19
19
20
20
random x = fract (sin x * 10000.0)
21
21
22
- noise p = let
22
+ noise_ p = let
23
23
const_step = vec3 110.0 241.0 171.0
24
24
i = floor p
25
25
f = fract p
@@ -46,40 +46,56 @@ noise p = let
46
46
47
47
in mix mix_y_1 mix_y_2 u.z
48
48
49
- fbm p = let
49
+ noise : Vec2 -> Float -> Float -> Float -> Vec4
50
+ noise st time scale offset = let
51
+ noised = noise_ (vec3 (st.x * scale) (st.y * scale) (offset * time))
52
+ color = vec4 noised noised noised 1.0
53
+ in color
54
+
55
+ fbm_ p = let
50
56
value_1 = 0.0
51
57
amplitude_1 = 0.5
52
58
frequency_1 = 0.0
53
59
54
- value_2 = value_1 + amplitude_1 * noise p
60
+ value_2 = value_1 + amplitude_1 * noise_ p
55
61
amplitude_2 = amplitude_1 * 0.5
56
62
p_2 = p * vec3 2.0 2.0 2.0
57
63
58
- value_3 = value_2 + amplitude_2 * noise p_2
64
+ value_3 = value_2 + amplitude_2 * noise_ p_2
59
65
amplitude_3 = amplitude_2 * 0.5
60
66
p_3 = p_2 * vec3 2.0 2.0 2.0
61
67
62
- value_4 = value_3 + amplitude_3 * noise p_3
68
+ value_4 = value_3 + amplitude_3 * noise_ p_3
63
69
amplitude_4 = amplitude_3 * 0.5
64
70
p_4 = p_3 * vec3 2.0 2.0 2.0
65
71
66
- value_5 = value_4 + amplitude_4 * noise p_4
72
+ value_5 = value_4 + amplitude_4 * noise_ p_4
67
73
amplitude_5 = amplitude_4 * 0.5
68
74
p_5 = p_4 * vec3 2.0 2.0 2.0
69
75
70
- value_6 = value_5 + amplitude_5 * noise p_5
76
+ value_6 = value_5 + amplitude_5 * noise_ p_5
71
77
amplitude_6 = amplitude_5 * 0.5
72
78
p_6 = p_5 * vec3 2.0 2.0 2.0
73
79
74
- value_7 = value_6 + amplitude_6 * noise p_6
80
+ value_7 = value_6 + amplitude_6 * noise_ p_6
75
81
in value_7
76
82
77
- domain_warping p = let
78
- q = vec3 (fbm p) (fbm (p + vec3 5.2 1.3 0.0)) p.z
83
+ fbm : Vec2 -> Float -> Float -> Float -> Vec4
84
+ fbm st time scale offset = let
85
+ moved = fbm_ (vec3 (st.x * scale) (st.y * scale) (offset * time))
86
+ in vec4 moved moved moved 1.0
87
+
88
+ dw_ p = let
89
+ q = vec3 (fbm_ p) (fbm_ (p + vec3 5.2 1.3 0.0)) p.z
79
90
r_1 = p + vec3 4.0 4.0 4.0 * q + vec3 1.7 9.2 0.0
80
91
r_2 = p + vec3 4.0 4.0 4.0 * q + vec3 8.3 2.8 0.0
81
- r = vec3 (fbm r_1) (fbm r_2) p.z
82
- in fbm (p + vec3 4.0 4.0 4.0 * r)
92
+ r = vec3 (fbm_ r_1) (fbm_ r_2) p.z
93
+ in fbm_ (p + vec3 4.0 4.0 4.0 * r)
94
+
95
+ dw : Vec2 -> Float -> Float -> Float -> Vec4
96
+ dw st time scale offset = let
97
+ warped = dw_ (vec3 (st.x * scale) (st.y * scale) (offset * time))
98
+ in vec4 warped warped warped 1.0
83
99
84
100
kaleid st nSides = let
85
101
offset = st - vec2 0.5 0.5
@@ -114,3 +130,8 @@ osc st time freq sync offset = let
114
130
b = sin ((st.x + offset / freq + time * sync) * freq) * 0.5 + 0.5
115
131
color = vec4 r g b 1.0
116
132
in color
133
+
134
+ modulate : Vec2 -> Vec4 -> Float -> Vec2
135
+ modulate st color amount = let
136
+ a = color.xy * vec2 amount amount
137
+ in st + a
0 commit comments