@firecms/neat 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,6 +20,9 @@ export type NeatConfig = {
20
20
  colorBrightness?: number;
21
21
  colors: NeatColor[];
22
22
  colorBlending?: number;
23
+ grainScale?: number;
24
+ grainIntensity?: number;
25
+ grainSpeed?: number;
23
26
  wireframe?: boolean;
24
27
  backgroundColor?: string;
25
28
  backgroundAlpha?: number;
@@ -47,6 +50,9 @@ export declare class NeatGradient implements NeatController {
47
50
  private _highlights;
48
51
  private _saturation;
49
52
  private _brightness;
53
+ private _grainScale;
54
+ private _grainIntensity;
55
+ private _grainSpeed;
50
56
  private _colorBlending;
51
57
  private _colors;
52
58
  private _wireframe;
@@ -73,6 +79,9 @@ export declare class NeatGradient implements NeatController {
73
79
  set colorSaturation(colorSaturation: number);
74
80
  set colorBrightness(colorBrightness: number);
75
81
  set colorBlending(colorBlending: number);
82
+ set grainScale(grainScale: number);
83
+ set grainIntensity(grainIntensity: number);
84
+ set grainSpeed(grainSpeed: number);
76
85
  set wireframe(wireframe: boolean);
77
86
  set resolution(resolution: number);
78
87
  set backgroundColor(backgroundColor: string);
@@ -17,6 +17,9 @@ export class NeatGradient {
17
17
  _highlights = -1;
18
18
  _saturation = -1;
19
19
  _brightness = -1;
20
+ _grainScale = -1;
21
+ _grainIntensity = -1;
22
+ _grainSpeed = -1;
20
23
  _colorBlending = -1;
21
24
  _colors = [];
22
25
  _wireframe = false;
@@ -26,7 +29,7 @@ export class NeatGradient {
26
29
  sizeObserver;
27
30
  sceneState;
28
31
  constructor(config) {
29
- const { ref, speed = 4, horizontalPressure = 3, verticalPressure = 3, waveFrequencyX = 5, waveFrequencyY = 5, waveAmplitude = 3, colors, highlights = 4, shadows = 4, colorSaturation = 0, colorBrightness = 1, colorBlending = 5, wireframe = false, backgroundColor = "#FFFFFF", backgroundAlpha = 1.0, resolution = 1, seed } = config;
32
+ const { ref, speed = 4, horizontalPressure = 3, verticalPressure = 3, waveFrequencyX = 5, waveFrequencyY = 5, waveAmplitude = 3, colors, highlights = 4, shadows = 4, colorSaturation = 0, colorBrightness = 1, colorBlending = 5, grainScale = 2, grainIntensity = 0.55, grainSpeed = 0.1, wireframe = false, backgroundColor = "#FFFFFF", backgroundAlpha = 1.0, resolution = 1, seed } = config;
30
33
  this._ref = ref;
31
34
  this.destroy = this.destroy.bind(this);
32
35
  this._initScene = this._initScene.bind(this);
@@ -38,6 +41,9 @@ export class NeatGradient {
38
41
  this.waveFrequencyY = waveFrequencyY;
39
42
  this.waveAmplitude = waveAmplitude;
40
43
  this.colorBlending = colorBlending;
44
+ this.grainScale = grainScale;
45
+ this.grainIntensity = grainIntensity;
46
+ this.grainSpeed = grainSpeed;
41
47
  this.colors = colors;
42
48
  this.shadows = shadows;
43
49
  this.highlights = highlights;
@@ -57,11 +63,15 @@ export class NeatGradient {
57
63
  meshes.forEach((mesh) => {
58
64
  const width = this._ref.width, height = this._ref.height;
59
65
  const colors = [
60
- ...this._colors.map(color => ({
61
- is_active: color.enabled,
62
- color: new THREE.Color(color.color),
63
- influence: color.influence
64
- })),
66
+ ...this._colors.map(color => {
67
+ let threeColor = new THREE.Color();
68
+ threeColor.setStyle(color.color, "");
69
+ return ({
70
+ is_active: color.enabled,
71
+ color: threeColor,
72
+ influence: color.influence
73
+ });
74
+ }),
65
75
  ...Array.from({ length: COLORS_COUNT - this._colors.length }).map(() => ({
66
76
  is_active: false,
67
77
  color: new THREE.Color(0x000000)
@@ -99,6 +109,12 @@ export class NeatGradient {
99
109
  // @ts-ignore
100
110
  mesh.material.uniforms.u_brightness = { value: this._brightness };
101
111
  // @ts-ignore
112
+ mesh.material.uniforms.u_grain_intensity = { value: this._grainIntensity };
113
+ // @ts-ignore
114
+ mesh.material.uniforms.u_grain_speed = { value: this._grainSpeed };
115
+ // @ts-ignore
116
+ mesh.material.uniforms.u_grain_scale = { value: this._grainScale };
117
+ // @ts-ignore
102
118
  mesh.material.wireframe = this._wireframe;
103
119
  });
104
120
  renderer.render(scene, camera);
@@ -160,6 +176,15 @@ export class NeatGradient {
160
176
  set colorBlending(colorBlending) {
161
177
  this._colorBlending = colorBlending / 10;
162
178
  }
179
+ set grainScale(grainScale) {
180
+ this._grainScale = grainScale == 0 ? 1 : grainScale;
181
+ }
182
+ set grainIntensity(grainIntensity) {
183
+ this._grainIntensity = grainIntensity;
184
+ }
185
+ set grainSpeed(grainSpeed) {
186
+ this._grainSpeed = grainSpeed;
187
+ }
163
188
  set wireframe(wireframe) {
164
189
  this._wireframe = wireframe;
165
190
  }
@@ -227,11 +252,14 @@ export class NeatGradient {
227
252
  u_plane_height: { value: PLANE_HEIGHT },
228
253
  u_shadows: { value: this._shadows },
229
254
  u_highlights: { value: this._highlights },
255
+ u_grain_intensity: { value: this._grainIntensity },
256
+ u_grain_scale: { value: this._grainScale },
257
+ u_grain_speed: { value: this._grainSpeed },
230
258
  };
231
259
  const material = new THREE.ShaderMaterial({
232
260
  uniforms: uniforms,
233
261
  vertexShader: buildUniforms() + buildNoise() + buildColorFunctions() + buildVertexShader(),
234
- fragmentShader: buildUniforms() + buildColorFunctions() + buildFragmentShader()
262
+ fragmentShader: buildUniforms() + buildColorFunctions() + buildNoise() + buildFragmentShader()
235
263
  });
236
264
  material.wireframe = WIREFRAME;
237
265
  return material;
@@ -295,24 +323,25 @@ void main() {
295
323
  float noiseSpeed = (1. + float(i)) * 0.11;
296
324
  float noiseSeed = 13. + float(i) * 7.;
297
325
 
326
+ int reverseIndex = u_colors_count - i;
327
+
298
328
  float noise = snoise(
299
329
  vec3(
300
330
  noise_cord.x * u_color_pressure.x + u_time * noiseFlow * 2.,
301
331
  noise_cord.y * u_color_pressure.y,
302
332
  u_time * noiseSpeed
303
333
  ) + noiseSeed
304
- );
334
+ ) - (.1 * float(i)) + (.5 * u_color_blending);
305
335
 
306
336
  noise = clamp(minNoise, maxNoise + float(i) * 0.02, noise);
307
337
  vec3 nextColor = u_colors[i].color;
338
+ color = mix(color, nextColor, smoothstep(0.0, u_color_blending, noise));
308
339
 
309
340
  // vec3 colorOklab = oklab2rgb(color);
310
341
  // vec3 nextColorOklab = oklab2rgb(nextColor);
311
342
  // vec3 mixColor = mix(colorOklab, nextColorOklab, smoothstep(0.0, u_color_blending, noise));
312
- //
313
343
  // color = rgb2oklab(mixColor);
314
344
 
315
- color = mix(color, nextColor, smoothstep(0.0, u_color_blending, noise));
316
345
  }
317
346
 
318
347
  }
@@ -328,15 +357,48 @@ void main() {
328
357
  }
329
358
  function buildFragmentShader() {
330
359
  return `
360
+ float random(vec2 p) {
361
+ return fract(sin(dot(p, vec2(12.9898,78.233))) * 43758.5453);
362
+ }
331
363
 
364
+ float fbm(vec3 x) {
365
+ float value = 0.0;
366
+ float amplitude = 0.5;
367
+ float frequency = 1.0;
368
+
369
+ for (int i = 0; i < 4; i++) {
370
+ value += amplitude * snoise(x * frequency);
371
+ frequency *= 2.0;
372
+ amplitude *= 0.5;
373
+ }
374
+ return value;
375
+ }
376
+
332
377
  void main(){
333
378
  vec3 color = v_color;
334
379
 
335
- color.rgb += pow(v_displacement_amount, 1.0) * u_highlights;
336
- color.rgb -= pow(1.0 - v_displacement_amount, 2.0) * u_shadows;
380
+ color += pow(v_displacement_amount, 1.0) * u_highlights;
381
+ color -= pow(1.0 - v_displacement_amount, 2.0) * u_shadows;
337
382
  color = saturation(color, 1.0 + u_saturation);
338
383
  color = color * u_brightness;
339
384
 
385
+ // Generate grain using fbm
386
+ vec2 noiseCoords = gl_FragCoord.xy / u_grain_scale;
387
+
388
+ float grain = (u_grain_speed != 0.0)
389
+ ? fbm(vec3(noiseCoords, u_time * u_grain_speed))
390
+ : fbm(vec3(noiseCoords, 0.0));
391
+
392
+ // Center the grain around zero
393
+ grain = grain * 0.5 + 0.5;
394
+ grain -= 0.5;
395
+
396
+ // Apply grain intensity
397
+ grain *= u_grain_intensity;
398
+
399
+ // Add grain to color
400
+ color += vec3(grain);
401
+
340
402
  gl_FragColor = vec4(color,1.0);
341
403
  }
342
404
  `;
@@ -350,6 +412,9 @@ struct Color {
350
412
  float value;
351
413
  };
352
414
 
415
+ uniform float u_grain_intensity;
416
+ uniform float u_grain_scale;
417
+ uniform float u_grain_speed;
353
418
  uniform float u_time;
354
419
 
355
420
  uniform float u_wave_amplitude;
@@ -1 +1 @@
1
- {"version":3,"file":"NeatGradient.js","sourceRoot":"","sources":["../src/NeatGradient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NeatGradient.js","sourceRoot":"","sources":["../src/NeatGradient.ts"],"names":[],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -1,6 +1,6 @@
1
- import * as r from "three";
2
- const g = 50, _ = 80, T = !0, C = 5, V = new r.Clock(), E = U();
3
- class X {
1
+ import * as i from "three";
2
+ const g = 50, _ = 80, H = !0, S = 5, W = new i.Clock(), N = Z();
3
+ class $ {
4
4
  _ref;
5
5
  _speed = -1;
6
6
  _horizontalPressure = -1;
@@ -12,6 +12,9 @@ class X {
12
12
  _highlights = -1;
13
13
  _saturation = -1;
14
14
  _brightness = -1;
15
+ _grainScale = -1;
16
+ _grainIntensity = -1;
17
+ _grainSpeed = -1;
15
18
  _colorBlending = -1;
16
19
  _colors = [];
17
20
  _wireframe = !1;
@@ -23,49 +26,55 @@ class X {
23
26
  constructor(e) {
24
27
  const {
25
28
  ref: o,
26
- speed: i = 4,
27
- horizontalPressure: n = 3,
29
+ speed: n = 4,
30
+ horizontalPressure: s = 3,
28
31
  verticalPressure: a = 3,
29
32
  waveFrequencyX: c = 5,
30
- waveFrequencyY: u = 5,
31
- waveAmplitude: x = 3,
33
+ waveFrequencyY: v = 5,
34
+ waveAmplitude: m = 3,
32
35
  colors: l,
33
- highlights: v = 4,
34
- shadows: m = 4,
36
+ highlights: u = 4,
37
+ shadows: x = 4,
35
38
  colorSaturation: p = 0,
36
39
  colorBrightness: w = 1,
37
40
  colorBlending: b = 5,
38
- wireframe: I = !1,
39
- backgroundColor: N = "#FFFFFF",
40
- backgroundAlpha: O = 1,
41
- resolution: R = 1,
42
- seed: q
41
+ grainScale: O = 2,
42
+ grainIntensity: R = 0.55,
43
+ grainSpeed: B = 0.1,
44
+ wireframe: K = !1,
45
+ backgroundColor: D = "#FFFFFF",
46
+ backgroundAlpha: L = 1,
47
+ resolution: T = 1,
48
+ seed: C
43
49
  } = e;
44
- this._ref = o, this.destroy = this.destroy.bind(this), this._initScene = this._initScene.bind(this), this._buildMaterial = this._buildMaterial.bind(this), this.speed = i, this.horizontalPressure = n, this.verticalPressure = a, this.waveFrequencyX = c, this.waveFrequencyY = u, this.waveAmplitude = x, this.colorBlending = b, this.colors = l, this.shadows = m, this.highlights = v, this.colorSaturation = p, this.colorBrightness = w, this.wireframe = I, this.backgroundColor = N, this.backgroundAlpha = O, this.sceneState = this._initScene(R);
45
- let z = q !== void 0 ? q : G();
46
- const S = () => {
50
+ this._ref = o, this.destroy = this.destroy.bind(this), this._initScene = this._initScene.bind(this), this._buildMaterial = this._buildMaterial.bind(this), this.speed = n, this.horizontalPressure = s, this.verticalPressure = a, this.waveFrequencyX = c, this.waveFrequencyY = v, this.waveAmplitude = m, this.colorBlending = b, this.grainScale = O, this.grainIntensity = R, this.grainSpeed = B, this.colors = l, this.shadows = x, this.highlights = u, this.colorSaturation = p, this.colorBrightness = w, this.wireframe = K, this.backgroundColor = D, this.backgroundAlpha = L, this.sceneState = this._initScene(T);
51
+ let z = C !== void 0 ? C : Q();
52
+ const q = () => {
47
53
  const { renderer: h, camera: f, scene: d, meshes: y } = this.sceneState;
48
- Math.floor(z * 10) % 5 === 0 && W(o), h.setClearColor(this._backgroundColor, this._backgroundAlpha), y.forEach((s) => {
49
- const K = this._ref.width, D = this._ref.height, L = [
50
- ...this._colors.map((P) => ({
51
- is_active: P.enabled,
52
- color: new r.Color(P.color),
53
- influence: P.influence
54
- })),
55
- ...Array.from({ length: C - this._colors.length }).map(() => ({
54
+ Math.floor(z * 10) % 5 === 0 && J(o), h.setClearColor(this._backgroundColor, this._backgroundAlpha), y.forEach((r) => {
55
+ const j = this._ref.width, Y = this._ref.height, G = [
56
+ ...this._colors.map((P) => {
57
+ let F = new i.Color();
58
+ return F.setStyle(P.color, ""), {
59
+ is_active: P.enabled,
60
+ color: F,
61
+ influence: P.influence
62
+ };
63
+ }),
64
+ ...Array.from({ length: S - this._colors.length }).map(() => ({
56
65
  is_active: !1,
57
- color: new r.Color(0)
66
+ color: new i.Color(0)
58
67
  }))
59
68
  ];
60
- z += V.getDelta() * this._speed, s.material.uniforms.u_time.value = z, s.material.uniforms.u_resolution = { value: new r.Vector2(K, D) }, s.material.uniforms.u_color_pressure = { value: new r.Vector2(this._horizontalPressure, this._verticalPressure) }, s.material.uniforms.u_wave_frequency_x = { value: this._waveFrequencyX }, s.material.uniforms.u_wave_frequency_y = { value: this._waveFrequencyY }, s.material.uniforms.u_wave_amplitude = { value: this._waveAmplitude }, s.material.uniforms.u_plane_width = { value: g }, s.material.uniforms.u_plane_height = { value: _ }, s.material.uniforms.u_color_blending = { value: this._colorBlending }, s.material.uniforms.u_colors = { value: L }, s.material.uniforms.u_colors_count = { value: C }, s.material.uniforms.u_shadows = { value: this._shadows }, s.material.uniforms.u_highlights = { value: this._highlights }, s.material.uniforms.u_saturation = { value: this._saturation }, s.material.uniforms.u_brightness = { value: this._brightness }, s.material.wireframe = this._wireframe;
61
- }), h.render(d, f), this.requestRef = requestAnimationFrame(S);
62
- }, B = () => {
69
+ z += W.getDelta() * this._speed, r.material.uniforms.u_time.value = z, r.material.uniforms.u_resolution = { value: new i.Vector2(j, Y) }, r.material.uniforms.u_color_pressure = { value: new i.Vector2(this._horizontalPressure, this._verticalPressure) }, r.material.uniforms.u_wave_frequency_x = { value: this._waveFrequencyX }, r.material.uniforms.u_wave_frequency_y = { value: this._waveFrequencyY }, r.material.uniforms.u_wave_amplitude = { value: this._waveAmplitude }, r.material.uniforms.u_plane_width = { value: g }, r.material.uniforms.u_plane_height = { value: _ }, r.material.uniforms.u_color_blending = { value: this._colorBlending }, r.material.uniforms.u_colors = { value: G }, r.material.uniforms.u_colors_count = { value: S }, r.material.uniforms.u_shadows = { value: this._shadows }, r.material.uniforms.u_highlights = { value: this._highlights }, r.material.uniforms.u_saturation = { value: this._saturation }, r.material.uniforms.u_brightness = { value: this._brightness }, r.material.uniforms.u_grain_intensity = { value: this._grainIntensity }, r.material.uniforms.u_grain_speed = { value: this._grainSpeed }, r.material.uniforms.u_grain_scale = { value: this._grainScale }, r.material.wireframe = this._wireframe;
70
+ }), h.render(d, f), this.requestRef = requestAnimationFrame(q);
71
+ }, V = () => {
63
72
  const { renderer: h } = this.sceneState, f = h.domElement, d = f.clientWidth, y = f.clientHeight;
64
- this.sceneState.renderer.setSize(d, y, !1), F(this.sceneState.camera, d, y);
73
+ this.sceneState.renderer.setSize(d, y, !1), A(this.sceneState.camera, d, y);
65
74
  };
66
75
  this.sizeObserver = new ResizeObserver((h) => {
67
- B();
68
- }), this.sizeObserver.observe(o), S();
76
+ V();
77
+ }), this.sizeObserver.observe(o), q();
69
78
  }
70
79
  destroy() {
71
80
  this && (cancelAnimationFrame(this.requestRef), this.sizeObserver.disconnect());
@@ -106,6 +115,15 @@ class X {
106
115
  set colorBlending(e) {
107
116
  this._colorBlending = e / 10;
108
117
  }
118
+ set grainScale(e) {
119
+ this._grainScale = e == 0 ? 1 : e;
120
+ }
121
+ set grainIntensity(e) {
122
+ this._grainIntensity = e;
123
+ }
124
+ set grainSpeed(e) {
125
+ this._grainSpeed = e;
126
+ }
109
127
  set wireframe(e) {
110
128
  this._wireframe = e;
111
129
  }
@@ -119,59 +137,62 @@ class X {
119
137
  this._backgroundAlpha = e;
120
138
  }
121
139
  _initScene(e) {
122
- const o = this._ref.width, i = this._ref.height, n = new r.WebGLRenderer({
140
+ const o = this._ref.width, n = this._ref.height, s = new i.WebGLRenderer({
123
141
  alpha: !0,
124
142
  canvas: this._ref
125
143
  });
126
- n.setClearColor(16711680, 0.5), n.setSize(o, i, !1);
127
- const a = [], c = new r.Scene(), u = this._buildMaterial(o, i), x = new r.PlaneGeometry(g, _, 240 * e, 240 * e), l = new r.Mesh(x, u);
144
+ s.setClearColor(16711680, 0.5), s.setSize(o, n, !1);
145
+ const a = [], c = new i.Scene(), v = this._buildMaterial(o, n), m = new i.PlaneGeometry(g, _, 240 * e, 240 * e), l = new i.Mesh(m, v);
128
146
  l.rotation.x = -Math.PI / 3.5, l.position.z = -1, a.push(l), c.add(l);
129
- const v = new r.OrthographicCamera(0, 0, 0, 0, 0, 0);
130
- return v.position.z = 5, F(v, o, i), {
131
- renderer: n,
132
- camera: v,
147
+ const u = new i.OrthographicCamera(0, 0, 0, 0, 0, 0);
148
+ return u.position.z = 5, A(u, o, n), {
149
+ renderer: s,
150
+ camera: u,
133
151
  scene: c,
134
152
  meshes: a,
135
153
  resolution: e
136
154
  };
137
155
  }
138
156
  _buildMaterial(e, o) {
139
- const i = [
157
+ const n = [
140
158
  ...this._colors.map((c) => ({
141
159
  is_active: c.enabled,
142
- color: new r.Color(c.color),
160
+ color: new i.Color(c.color),
143
161
  influence: c.influence
144
162
  })),
145
- ...Array.from({ length: C - this._colors.length }).map(() => ({
163
+ ...Array.from({ length: S - this._colors.length }).map(() => ({
146
164
  is_active: !1,
147
- color: new r.Color(0)
165
+ color: new i.Color(0)
148
166
  }))
149
- ], n = {
167
+ ], s = {
150
168
  u_time: { value: 0 },
151
- u_color_pressure: { value: new r.Vector2(this._horizontalPressure, this._verticalPressure) },
169
+ u_color_pressure: { value: new i.Vector2(this._horizontalPressure, this._verticalPressure) },
152
170
  u_wave_frequency_x: { value: this._waveFrequencyX },
153
171
  u_wave_frequency_y: { value: this._waveFrequencyY },
154
172
  u_wave_amplitude: { value: this._waveAmplitude },
155
- u_resolution: { value: new r.Vector2(e, o) },
156
- u_colors: { value: i },
173
+ u_resolution: { value: new i.Vector2(e, o) },
174
+ u_colors: { value: n },
157
175
  u_colors_count: { value: this._colors.length },
158
176
  u_plane_width: { value: g },
159
177
  u_plane_height: { value: _ },
160
178
  u_shadows: { value: this._shadows },
161
- u_highlights: { value: this._highlights }
162
- }, a = new r.ShaderMaterial({
163
- uniforms: n,
164
- vertexShader: A() + H() + M() + j(),
165
- fragmentShader: A() + M() + Y()
179
+ u_highlights: { value: this._highlights },
180
+ u_grain_intensity: { value: this._grainIntensity },
181
+ u_grain_scale: { value: this._grainScale },
182
+ u_grain_speed: { value: this._grainSpeed }
183
+ }, a = new i.ShaderMaterial({
184
+ uniforms: s,
185
+ vertexShader: I() + M() + k() + U(),
186
+ fragmentShader: I() + k() + M() + X()
166
187
  });
167
- return a.wireframe = T, a;
188
+ return a.wireframe = H, a;
168
189
  }
169
190
  }
170
- function F(t, e, o) {
171
- const a = e * o / 1e6 * g * _ / 1.5, c = e / o, u = Math.sqrt(a * c), x = a / u, l = -g / 2, v = Math.min((l + u) / 1.5, g / 2), m = _ / 4, p = Math.max((m - x) / 2, -_ / 4), w = -100, b = 1e3;
172
- t instanceof r.OrthographicCamera ? (t.left = l, t.right = v, t.top = m, t.bottom = p, t.near = w, t.far = b, t.updateProjectionMatrix()) : t instanceof r.PerspectiveCamera && (t.aspect = e / o, t.updateProjectionMatrix());
191
+ function A(t, e, o) {
192
+ const a = e * o / 1e6 * g * _ / 1.5, c = e / o, v = Math.sqrt(a * c), m = a / v, l = -g / 2, u = Math.min((l + v) / 1.5, g / 2), x = _ / 4, p = Math.max((x - m) / 2, -_ / 4), w = -100, b = 1e3;
193
+ t instanceof i.OrthographicCamera ? (t.left = l, t.right = u, t.top = x, t.bottom = p, t.near = w, t.far = b, t.updateProjectionMatrix()) : t instanceof i.PerspectiveCamera && (t.aspect = e / o, t.updateProjectionMatrix());
173
194
  }
174
- function j() {
195
+ function U() {
175
196
  return `
176
197
 
177
198
  void main() {
@@ -201,24 +222,25 @@ void main() {
201
222
  float noiseSpeed = (1. + float(i)) * 0.11;
202
223
  float noiseSeed = 13. + float(i) * 7.;
203
224
 
225
+ int reverseIndex = u_colors_count - i;
226
+
204
227
  float noise = snoise(
205
228
  vec3(
206
229
  noise_cord.x * u_color_pressure.x + u_time * noiseFlow * 2.,
207
230
  noise_cord.y * u_color_pressure.y,
208
231
  u_time * noiseSpeed
209
232
  ) + noiseSeed
210
- );
233
+ ) - (.1 * float(i)) + (.5 * u_color_blending);
211
234
 
212
235
  noise = clamp(minNoise, maxNoise + float(i) * 0.02, noise);
213
236
  vec3 nextColor = u_colors[i].color;
237
+ color = mix(color, nextColor, smoothstep(0.0, u_color_blending, noise));
214
238
 
215
239
  // vec3 colorOklab = oklab2rgb(color);
216
240
  // vec3 nextColorOklab = oklab2rgb(nextColor);
217
241
  // vec3 mixColor = mix(colorOklab, nextColorOklab, smoothstep(0.0, u_color_blending, noise));
218
- //
219
242
  // color = rgb2oklab(mixColor);
220
243
 
221
- color = mix(color, nextColor, smoothstep(0.0, u_color_blending, noise));
222
244
  }
223
245
 
224
246
  }
@@ -232,22 +254,55 @@ void main() {
232
254
  }
233
255
  `;
234
256
  }
235
- function Y() {
257
+ function X() {
236
258
  return `
259
+ float random(vec2 p) {
260
+ return fract(sin(dot(p, vec2(12.9898,78.233))) * 43758.5453);
261
+ }
237
262
 
263
+ float fbm(vec3 x) {
264
+ float value = 0.0;
265
+ float amplitude = 0.5;
266
+ float frequency = 1.0;
267
+
268
+ for (int i = 0; i < 4; i++) {
269
+ value += amplitude * snoise(x * frequency);
270
+ frequency *= 2.0;
271
+ amplitude *= 0.5;
272
+ }
273
+ return value;
274
+ }
275
+
238
276
  void main(){
239
277
  vec3 color = v_color;
240
278
 
241
- color.rgb += pow(v_displacement_amount, 1.0) * u_highlights;
242
- color.rgb -= pow(1.0 - v_displacement_amount, 2.0) * u_shadows;
279
+ color += pow(v_displacement_amount, 1.0) * u_highlights;
280
+ color -= pow(1.0 - v_displacement_amount, 2.0) * u_shadows;
243
281
  color = saturation(color, 1.0 + u_saturation);
244
282
  color = color * u_brightness;
245
283
 
284
+ // Generate grain using fbm
285
+ vec2 noiseCoords = gl_FragCoord.xy / u_grain_scale;
286
+
287
+ float grain = (u_grain_speed != 0.0)
288
+ ? fbm(vec3(noiseCoords, u_time * u_grain_speed))
289
+ : fbm(vec3(noiseCoords, 0.0));
290
+
291
+ // Center the grain around zero
292
+ grain = grain * 0.5 + 0.5;
293
+ grain -= 0.5;
294
+
295
+ // Apply grain intensity
296
+ grain *= u_grain_intensity;
297
+
298
+ // Add grain to color
299
+ color += vec3(grain);
300
+
246
301
  gl_FragColor = vec4(color,1.0);
247
302
  }
248
303
  `;
249
304
  }
250
- const A = () => `
305
+ const I = () => `
251
306
  precision highp float;
252
307
 
253
308
  struct Color {
@@ -256,6 +311,9 @@ struct Color {
256
311
  float value;
257
312
  };
258
313
 
314
+ uniform float u_grain_intensity;
315
+ uniform float u_grain_scale;
316
+ uniform float u_grain_speed;
259
317
  uniform float u_time;
260
318
 
261
319
  uniform float u_wave_amplitude;
@@ -283,7 +341,7 @@ varying vec4 v_new_position;
283
341
  varying vec3 v_color;
284
342
  varying float v_displacement_amount;
285
343
 
286
- `, H = () => `
344
+ `, M = () => `
287
345
 
288
346
  vec3 mod289(vec3 x)
289
347
  {
@@ -493,7 +551,7 @@ vec3 rgb2oklab(vec3 oklab)
493
551
  return m2 * (lms * lms * lms);
494
552
  }
495
553
 
496
- `, M = () => `
554
+ `, k = () => `
497
555
 
498
556
  vec3 saturation(vec3 rgb, float adjustment) {
499
557
  const vec3 W = vec3(0.2125, 0.7154, 0.0721);
@@ -536,34 +594,34 @@ vec3 hsv2rgb(vec3 c)
536
594
  vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
537
595
  return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
538
596
  }
539
- `, k = (t) => {
540
- t.id = E, t.href = "https://neat.firecms.co", t.target = "_blank", t.style.position = "absolute", t.style.display = "block", t.style.bottom = "0", t.style.right = "0", t.style.padding = "10px", t.style.color = "#dcdcdc", t.style.opacity = "0.8", t.style.fontFamily = "sans-serif", t.style.fontSize = "16px", t.style.fontWeight = "bold", t.style.textDecoration = "none", t.style.zIndex = "10000", t.innerHTML = "NEAT";
541
- }, W = (t) => {
597
+ `, E = (t) => {
598
+ t.id = N, t.href = "https://neat.firecms.co", t.target = "_blank", t.style.position = "absolute", t.style.display = "block", t.style.bottom = "0", t.style.right = "0", t.style.padding = "10px", t.style.color = "#dcdcdc", t.style.opacity = "0.8", t.style.fontFamily = "sans-serif", t.style.fontSize = "16px", t.style.fontWeight = "bold", t.style.textDecoration = "none", t.style.zIndex = "10000", t.innerHTML = "NEAT";
599
+ }, J = (t) => {
542
600
  const e = t.parentElement?.getElementsByTagName("a");
543
601
  if (e) {
544
- for (let i = 0; i < e.length; i++)
545
- if (e[i].id === E) {
546
- k(e[i]);
602
+ for (let n = 0; n < e.length; n++)
603
+ if (e[n].id === N) {
604
+ E(e[n]);
547
605
  return;
548
606
  }
549
607
  }
550
608
  const o = document.createElement("a");
551
- k(o), t.parentElement?.appendChild(o);
609
+ E(o), t.parentElement?.appendChild(o);
552
610
  };
553
- function G() {
611
+ function Q() {
554
612
  const t = new Date(), e = t.getMinutes(), o = t.getSeconds();
555
613
  return e * 60 + o;
556
614
  }
557
- function U(t = 6) {
615
+ function Z(t = 6) {
558
616
  const e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
559
617
  let o = "";
560
- for (let i = 0; i < t; i++) {
561
- const n = Math.floor(Math.random() * e.length);
562
- o += e.charAt(n);
618
+ for (let n = 0; n < t; n++) {
619
+ const s = Math.floor(Math.random() * e.length);
620
+ o += e.charAt(s);
563
621
  }
564
622
  return o;
565
623
  }
566
624
  export {
567
- X as NeatGradient
625
+ $ as NeatGradient
568
626
  };
569
627
  //# sourceMappingURL=index.es.js.map