@firecms/neat 0.5.0 → 0.5.1
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.
- package/dist/NeatGradient.d.ts +7 -0
- package/dist/NeatGradient.js +166 -73
- package/dist/NeatGradient.js.map +1 -1
- package/dist/index.es.js +253 -217
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +6 -6
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/NeatGradient.ts +180 -75
package/dist/NeatGradient.d.ts
CHANGED
|
@@ -129,6 +129,13 @@ export declare class NeatGradient implements NeatController {
|
|
|
129
129
|
private _yOffsetColorMultiplier;
|
|
130
130
|
private _yOffsetFlowMultiplier;
|
|
131
131
|
private _tempClearColor;
|
|
132
|
+
private _resizeTimeoutId;
|
|
133
|
+
private _textureNeedsUpdate;
|
|
134
|
+
private _lastColorUpdate;
|
|
135
|
+
private _linkCheckCounter;
|
|
136
|
+
private _mouseUpdateScheduled;
|
|
137
|
+
private _pendingMousePosition;
|
|
138
|
+
private _colorsChanged;
|
|
132
139
|
constructor(config: NeatConfig & {
|
|
133
140
|
ref: HTMLCanvasElement;
|
|
134
141
|
resolution?: number;
|
package/dist/NeatGradient.js
CHANGED
|
@@ -71,6 +71,14 @@ export class NeatGradient {
|
|
|
71
71
|
_yOffsetFlowMultiplier = 0.004;
|
|
72
72
|
// For saving/restoring clear color
|
|
73
73
|
_tempClearColor = new THREE.Color();
|
|
74
|
+
// Performance optimizations
|
|
75
|
+
_resizeTimeoutId = null;
|
|
76
|
+
_textureNeedsUpdate = false;
|
|
77
|
+
_lastColorUpdate = 0;
|
|
78
|
+
_linkCheckCounter = 0;
|
|
79
|
+
_mouseUpdateScheduled = false;
|
|
80
|
+
_pendingMousePosition = null;
|
|
81
|
+
_colorsChanged = true; // Track if colors need update
|
|
74
82
|
constructor(config) {
|
|
75
83
|
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, grainSparsity = 0.0, grainSpeed = 0.1, wireframe = false, backgroundColor = "#FFFFFF", backgroundAlpha = 1.0, resolution = 1, seed, yOffset = 0, yOffsetWaveMultiplier = 4, yOffsetColorMultiplier = 4, yOffsetFlowMultiplier = 4,
|
|
76
84
|
// Flow field parameters
|
|
@@ -138,8 +146,10 @@ export class NeatGradient {
|
|
|
138
146
|
let tick = seed !== undefined ? seed : getElapsedSecondsInLastHour();
|
|
139
147
|
const render = () => {
|
|
140
148
|
const { renderer, camera, scene } = this.sceneState;
|
|
141
|
-
// Optimization: check if cached link is still valid in DOM
|
|
142
|
-
|
|
149
|
+
// Optimization: check if cached link is still valid in DOM less frequently
|
|
150
|
+
this._linkCheckCounter++;
|
|
151
|
+
if (this._linkCheckCounter >= 300) { // Check every ~5 seconds at 60fps
|
|
152
|
+
this._linkCheckCounter = 0;
|
|
143
153
|
if (!this._linkElement || !document.contains(this._linkElement)) {
|
|
144
154
|
this._linkElement = addNeatLink(ref);
|
|
145
155
|
}
|
|
@@ -177,28 +187,42 @@ export class NeatGradient {
|
|
|
177
187
|
u.u_mouse_distortion_radius.value = this._mouseDistortionRadius;
|
|
178
188
|
u.u_mouse_darken.value = this._mouseDarken;
|
|
179
189
|
u.u_enable_procedural_texture.value = this._enableProceduralTexture ? 1.0 : 0.0;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
for (let i = 0; i < COLORS_COUNT; i++) {
|
|
185
|
-
if (i < this._colors.length) {
|
|
186
|
-
const c = this._colors[i];
|
|
187
|
-
shaderColors[i].is_active = c.enabled ? 1.0 : 0.0;
|
|
188
|
-
shaderColors[i].color.setStyle(c.color, "");
|
|
189
|
-
shaderColors[i].influence = c.influence || 0;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
shaderColors[i].is_active = 0.0;
|
|
190
|
+
// Only regenerate procedural texture when needed
|
|
191
|
+
if (this._textureNeedsUpdate && this._enableProceduralTexture) {
|
|
192
|
+
if (this._proceduralTexture) {
|
|
193
|
+
this._proceduralTexture.dispose();
|
|
193
194
|
}
|
|
195
|
+
this._proceduralTexture = this._createProceduralTexture();
|
|
196
|
+
this._textureNeedsUpdate = false;
|
|
194
197
|
}
|
|
195
|
-
u.
|
|
196
|
-
|
|
198
|
+
u.u_procedural_texture.value = this._proceduralTexture;
|
|
199
|
+
u.u_texture_ease.value = this._textureEase;
|
|
200
|
+
// Wireframe is a material property and must update every frame to avoid artifacts
|
|
197
201
|
// @ts-ignore - access material safely
|
|
198
202
|
this.sceneState.meshes[0].material.wireframe = this._wireframe;
|
|
203
|
+
// Optimized Color Update: Update immediately on change, or throttle to 10 times per second
|
|
204
|
+
const now = Date.now();
|
|
205
|
+
const shouldUpdate = this._colorsChanged || (now - this._lastColorUpdate > 100);
|
|
206
|
+
if (shouldUpdate) {
|
|
207
|
+
this._lastColorUpdate = now;
|
|
208
|
+
this._colorsChanged = false;
|
|
209
|
+
const shaderColors = u.u_colors.value;
|
|
210
|
+
for (let i = 0; i < COLORS_COUNT; i++) {
|
|
211
|
+
if (i < this._colors.length) {
|
|
212
|
+
const c = this._colors[i];
|
|
213
|
+
shaderColors[i].is_active = c.enabled ? 1.0 : 0.0;
|
|
214
|
+
shaderColors[i].color.setStyle(c.color, "");
|
|
215
|
+
shaderColors[i].influence = c.influence || 0;
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
shaderColors[i].is_active = 0.0;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
u.u_colors_count.value = COLORS_COUNT;
|
|
222
|
+
}
|
|
199
223
|
}
|
|
200
|
-
// Render mouse interaction to FBO
|
|
201
|
-
if (this._mouseFBO && this._sceneMouse && this._cameraMouse) {
|
|
224
|
+
// Render mouse interaction to FBO - optimize by only rendering when needed
|
|
225
|
+
if (this._mouseFBO && this._sceneMouse && this._cameraMouse && this._mouseDistortionStrength > 0) {
|
|
202
226
|
let hasActiveBrushes = false;
|
|
203
227
|
// Update mouse objects - decay rate controls how fast trails fade
|
|
204
228
|
for (let i = 0; i < this._mouseObjects.length; i++) {
|
|
@@ -215,25 +239,23 @@ export class NeatGradient {
|
|
|
215
239
|
}
|
|
216
240
|
}
|
|
217
241
|
}
|
|
218
|
-
//
|
|
219
|
-
// Store current clear color (likely the main background color)
|
|
220
|
-
renderer.getClearColor(this._tempClearColor);
|
|
221
|
-
const oldClearAlpha = renderer.getClearAlpha();
|
|
222
|
-
// Set clear color to Black/Transparent for the FBO.
|
|
223
|
-
// Important: If we use the main background color (e.g. White), the FBO
|
|
224
|
-
// will be white, causing 100% distortion everywhere.
|
|
225
|
-
renderer.setClearColor(0x000000, 0.0);
|
|
226
|
-
renderer.setRenderTarget(this._mouseFBO);
|
|
227
|
-
renderer.clear();
|
|
242
|
+
// Only render FBO if there are active brushes
|
|
228
243
|
if (hasActiveBrushes) {
|
|
244
|
+
// Store current clear color (likely the main background color)
|
|
245
|
+
renderer.getClearColor(this._tempClearColor);
|
|
246
|
+
const oldClearAlpha = renderer.getClearAlpha();
|
|
247
|
+
// Set clear color to Black/Transparent for the FBO.
|
|
248
|
+
renderer.setClearColor(0x000000, 0.0);
|
|
249
|
+
renderer.setRenderTarget(this._mouseFBO);
|
|
250
|
+
renderer.clear();
|
|
229
251
|
renderer.render(this._sceneMouse, this._cameraMouse);
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
252
|
+
renderer.setRenderTarget(null);
|
|
253
|
+
// Restore main background color for the actual scene render
|
|
254
|
+
renderer.setClearColor(this._tempClearColor, oldClearAlpha);
|
|
255
|
+
// Update mouse texture uniform
|
|
256
|
+
if (this._cachedUniforms) {
|
|
257
|
+
this._cachedUniforms.u_mouse_texture.value = this._mouseFBO.texture;
|
|
258
|
+
}
|
|
237
259
|
}
|
|
238
260
|
}
|
|
239
261
|
// Ensure we set the clear color for the main scene explicitly before rendering
|
|
@@ -261,8 +283,15 @@ export class NeatGradient {
|
|
|
261
283
|
this._cameraMouse.updateProjectionMatrix();
|
|
262
284
|
}
|
|
263
285
|
};
|
|
264
|
-
|
|
265
|
-
|
|
286
|
+
// Debounce resize to prevent excessive operations
|
|
287
|
+
this.sizeObserver = new ResizeObserver(() => {
|
|
288
|
+
if (this._resizeTimeoutId !== null) {
|
|
289
|
+
clearTimeout(this._resizeTimeoutId);
|
|
290
|
+
}
|
|
291
|
+
this._resizeTimeoutId = window.setTimeout(() => {
|
|
292
|
+
setSize();
|
|
293
|
+
this._resizeTimeoutId = null;
|
|
294
|
+
}, 100); // Wait 100ms after last resize event
|
|
266
295
|
});
|
|
267
296
|
this.sizeObserver.observe(ref);
|
|
268
297
|
render();
|
|
@@ -271,6 +300,11 @@ export class NeatGradient {
|
|
|
271
300
|
if (this) {
|
|
272
301
|
cancelAnimationFrame(this.requestRef);
|
|
273
302
|
this.sizeObserver.disconnect();
|
|
303
|
+
// Clear resize timeout
|
|
304
|
+
if (this._resizeTimeoutId !== null) {
|
|
305
|
+
clearTimeout(this._resizeTimeoutId);
|
|
306
|
+
this._resizeTimeoutId = null;
|
|
307
|
+
}
|
|
274
308
|
// Cleanup WebGL resources
|
|
275
309
|
if (this.sceneState) {
|
|
276
310
|
this.sceneState.renderer.dispose();
|
|
@@ -314,6 +348,7 @@ export class NeatGradient {
|
|
|
314
348
|
}
|
|
315
349
|
set colors(colors) {
|
|
316
350
|
this._colors = colors;
|
|
351
|
+
this._colorsChanged = true; // Flag for immediate update
|
|
317
352
|
}
|
|
318
353
|
set highlights(highlights) {
|
|
319
354
|
this._highlights = highlights / 100;
|
|
@@ -419,43 +454,43 @@ export class NeatGradient {
|
|
|
419
454
|
set enableProceduralTexture(value) {
|
|
420
455
|
this._enableProceduralTexture = value;
|
|
421
456
|
if (value && !this._proceduralTexture) {
|
|
422
|
-
this.
|
|
457
|
+
this._textureNeedsUpdate = true;
|
|
423
458
|
}
|
|
424
459
|
}
|
|
425
460
|
set textureVoidLikelihood(value) {
|
|
426
461
|
this._textureVoidLikelihood = value;
|
|
427
462
|
if (this._enableProceduralTexture) {
|
|
428
|
-
this.
|
|
463
|
+
this._textureNeedsUpdate = true;
|
|
429
464
|
}
|
|
430
465
|
}
|
|
431
466
|
set textureVoidWidthMin(value) {
|
|
432
467
|
this._textureVoidWidthMin = value;
|
|
433
468
|
if (this._enableProceduralTexture) {
|
|
434
|
-
this.
|
|
469
|
+
this._textureNeedsUpdate = true;
|
|
435
470
|
}
|
|
436
471
|
}
|
|
437
472
|
set textureVoidWidthMax(value) {
|
|
438
473
|
this._textureVoidWidthMax = value;
|
|
439
474
|
if (this._enableProceduralTexture) {
|
|
440
|
-
this.
|
|
475
|
+
this._textureNeedsUpdate = true;
|
|
441
476
|
}
|
|
442
477
|
}
|
|
443
478
|
set textureBandDensity(value) {
|
|
444
479
|
this._textureBandDensity = value;
|
|
445
480
|
if (this._enableProceduralTexture) {
|
|
446
|
-
this.
|
|
481
|
+
this._textureNeedsUpdate = true;
|
|
447
482
|
}
|
|
448
483
|
}
|
|
449
484
|
set textureColorBlending(value) {
|
|
450
485
|
this._textureColorBlending = value;
|
|
451
486
|
if (this._enableProceduralTexture) {
|
|
452
|
-
this.
|
|
487
|
+
this._textureNeedsUpdate = true;
|
|
453
488
|
}
|
|
454
489
|
}
|
|
455
490
|
set textureSeed(value) {
|
|
456
491
|
this._textureSeed = value;
|
|
457
492
|
if (this._enableProceduralTexture) {
|
|
458
|
-
this.
|
|
493
|
+
this._textureNeedsUpdate = true;
|
|
459
494
|
}
|
|
460
495
|
}
|
|
461
496
|
get textureEase() {
|
|
@@ -467,28 +502,28 @@ export class NeatGradient {
|
|
|
467
502
|
set proceduralBackgroundColor(value) {
|
|
468
503
|
this._proceduralBackgroundColor = value;
|
|
469
504
|
if (this._enableProceduralTexture) {
|
|
470
|
-
this.
|
|
505
|
+
this._textureNeedsUpdate = true;
|
|
471
506
|
}
|
|
472
507
|
}
|
|
473
508
|
set textureShapeTriangles(value) {
|
|
474
509
|
this._textureShapeTriangles = value;
|
|
475
510
|
if (this._enableProceduralTexture)
|
|
476
|
-
this.
|
|
511
|
+
this._textureNeedsUpdate = true;
|
|
477
512
|
}
|
|
478
513
|
set textureShapeCircles(value) {
|
|
479
514
|
this._textureShapeCircles = value;
|
|
480
515
|
if (this._enableProceduralTexture)
|
|
481
|
-
this.
|
|
516
|
+
this._textureNeedsUpdate = true;
|
|
482
517
|
}
|
|
483
518
|
set textureShapeBars(value) {
|
|
484
519
|
this._textureShapeBars = value;
|
|
485
520
|
if (this._enableProceduralTexture)
|
|
486
|
-
this.
|
|
521
|
+
this._textureNeedsUpdate = true;
|
|
487
522
|
}
|
|
488
523
|
set textureShapeSquiggles(value) {
|
|
489
524
|
this._textureShapeSquiggles = value;
|
|
490
525
|
if (this._enableProceduralTexture)
|
|
491
|
-
this.
|
|
526
|
+
this._textureNeedsUpdate = true;
|
|
492
527
|
}
|
|
493
528
|
_initScene(resolution) {
|
|
494
529
|
const width = this._ref.width, height = this._ref.height;
|
|
@@ -649,27 +684,42 @@ export class NeatGradient {
|
|
|
649
684
|
const rect = this._ref.getBoundingClientRect();
|
|
650
685
|
const width = this._ref.width;
|
|
651
686
|
const height = this._ref.height;
|
|
652
|
-
|
|
653
|
-
this.
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
687
|
+
// Store pending mouse position
|
|
688
|
+
this._pendingMousePosition = {
|
|
689
|
+
x: e.clientX - rect.left - width / 2,
|
|
690
|
+
y: -(e.clientY - rect.top - height / 2)
|
|
691
|
+
};
|
|
692
|
+
// Batch mouse updates using requestAnimationFrame
|
|
693
|
+
if (!this._mouseUpdateScheduled) {
|
|
694
|
+
this._mouseUpdateScheduled = true;
|
|
695
|
+
requestAnimationFrame(() => {
|
|
696
|
+
this._mouseUpdateScheduled = false;
|
|
697
|
+
if (!this._pendingMousePosition)
|
|
698
|
+
return;
|
|
699
|
+
this._mouse.x = this._pendingMousePosition.x;
|
|
700
|
+
this._mouse.y = this._pendingMousePosition.y;
|
|
701
|
+
const brush = this._mouseObjects[this._currentBrush];
|
|
702
|
+
brush.mesh.scale.set(this._mouseBrushBaseScale, this._mouseBrushBaseScale, 1.0);
|
|
703
|
+
brush.active = true;
|
|
704
|
+
brush.mesh.visible = true;
|
|
705
|
+
brush.mesh.position.set(this._mouse.x, this._mouse.y, 0);
|
|
706
|
+
brush.mesh.rotation.z = Math.random() * Math.PI * 2;
|
|
707
|
+
if (brush.mesh.material instanceof THREE.MeshBasicMaterial) {
|
|
708
|
+
brush.mesh.material.opacity = 1.0;
|
|
709
|
+
}
|
|
710
|
+
this._currentBrush = (this._currentBrush + 1) % this._mouseObjects.length;
|
|
711
|
+
this._pendingMousePosition = null;
|
|
712
|
+
});
|
|
662
713
|
}
|
|
663
|
-
this._currentBrush = (this._currentBrush + 1) % this._mouseObjects.length;
|
|
664
714
|
}
|
|
665
715
|
_createProceduralTexture() {
|
|
666
716
|
// Texture size - 1024 provides good balance between quality and performance
|
|
667
|
-
//
|
|
717
|
+
// Reduced from 2048 for better performance
|
|
668
718
|
const texSize = 1024;
|
|
669
719
|
const sourceCanvas = document.createElement('canvas');
|
|
670
720
|
sourceCanvas.width = texSize;
|
|
671
721
|
sourceCanvas.height = texSize;
|
|
672
|
-
const sCtx = sourceCanvas.getContext('2d');
|
|
722
|
+
const sCtx = sourceCanvas.getContext('2d', { willReadFrequently: true });
|
|
673
723
|
if (!sCtx)
|
|
674
724
|
return new THREE.Texture();
|
|
675
725
|
let seed = this._textureSeed;
|
|
@@ -773,7 +823,7 @@ export class NeatGradient {
|
|
|
773
823
|
const canvas = document.createElement('canvas');
|
|
774
824
|
canvas.width = texSize;
|
|
775
825
|
canvas.height = texSize;
|
|
776
|
-
const ctx = canvas.getContext('2d');
|
|
826
|
+
const ctx = canvas.getContext('2d', { willReadFrequently: true });
|
|
777
827
|
if (!ctx)
|
|
778
828
|
return new THREE.Texture();
|
|
779
829
|
// Start filled with the chosen void color so gaps show that color
|
|
@@ -832,10 +882,23 @@ function updateCamera(camera, width, height) {
|
|
|
832
882
|
const ratio = width / height;
|
|
833
883
|
const targetWidth = Math.sqrt(targetPlaneArea * ratio);
|
|
834
884
|
const targetHeight = targetPlaneArea / targetWidth;
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
885
|
+
let left = -PLANE_WIDTH / 2;
|
|
886
|
+
let right = Math.min((left + targetWidth) / 1.5, PLANE_WIDTH / 2);
|
|
887
|
+
let top = PLANE_HEIGHT / 4;
|
|
888
|
+
let bottom = Math.max((top - targetHeight) / 2, -PLANE_HEIGHT / 4);
|
|
889
|
+
// Fix for mobile portrait: adjust bounds for proper aspect ratio AND zoom out slightly
|
|
890
|
+
if (ratio < 1) {
|
|
891
|
+
// Portrait mode - scale horizontal bounds by aspect ratio to prevent stretching
|
|
892
|
+
const horizontalScale = ratio;
|
|
893
|
+
left = left * horizontalScale;
|
|
894
|
+
right = right * horizontalScale;
|
|
895
|
+
// Zoom out slightly on mobile (1.1 = 10% zoom out)
|
|
896
|
+
const mobileZoomFactor = 1.05;
|
|
897
|
+
left = left * mobileZoomFactor;
|
|
898
|
+
right = right * mobileZoomFactor;
|
|
899
|
+
top = top * mobileZoomFactor;
|
|
900
|
+
bottom = bottom * mobileZoomFactor;
|
|
901
|
+
}
|
|
839
902
|
const near = -100;
|
|
840
903
|
const far = 1000;
|
|
841
904
|
if (camera instanceof THREE.OrthographicCamera) {
|
|
@@ -852,8 +915,13 @@ function updateCamera(camera, width, height) {
|
|
|
852
915
|
camera.updateProjectionMatrix();
|
|
853
916
|
}
|
|
854
917
|
}
|
|
918
|
+
// Cache shader strings to avoid repeated concatenation
|
|
919
|
+
let cachedVertexShader = null;
|
|
920
|
+
let cachedFragmentShader = null;
|
|
855
921
|
function buildVertexShader() {
|
|
856
|
-
|
|
922
|
+
if (cachedVertexShader)
|
|
923
|
+
return cachedVertexShader;
|
|
924
|
+
cachedVertexShader = `
|
|
857
925
|
void main() {
|
|
858
926
|
vUv = uv;
|
|
859
927
|
|
|
@@ -931,9 +999,12 @@ void main() {
|
|
|
931
999
|
v_new_position = gl_Position;
|
|
932
1000
|
}
|
|
933
1001
|
`;
|
|
1002
|
+
return cachedVertexShader;
|
|
934
1003
|
}
|
|
935
1004
|
function buildFragmentShader() {
|
|
936
|
-
|
|
1005
|
+
if (cachedFragmentShader)
|
|
1006
|
+
return cachedFragmentShader;
|
|
1007
|
+
cachedFragmentShader = `
|
|
937
1008
|
float random(vec2 p) {
|
|
938
1009
|
return fract(sin(dot(p, vec2(12.9898,78.233))) * 43758.5453);
|
|
939
1010
|
}
|
|
@@ -1016,8 +1087,14 @@ void main() {
|
|
|
1016
1087
|
gl_FragColor = vec4(color, 1.0);
|
|
1017
1088
|
}
|
|
1018
1089
|
`;
|
|
1090
|
+
return cachedFragmentShader;
|
|
1019
1091
|
}
|
|
1020
|
-
|
|
1092
|
+
// Cache uniforms string as well
|
|
1093
|
+
let cachedUniformsShader = null;
|
|
1094
|
+
const buildUniforms = () => {
|
|
1095
|
+
if (cachedUniformsShader)
|
|
1096
|
+
return cachedUniformsShader;
|
|
1097
|
+
cachedUniformsShader = `
|
|
1021
1098
|
precision highp float;
|
|
1022
1099
|
|
|
1023
1100
|
struct Color {
|
|
@@ -1082,7 +1159,14 @@ varying vec3 v_color;
|
|
|
1082
1159
|
varying float v_displacement_amount;
|
|
1083
1160
|
|
|
1084
1161
|
`;
|
|
1085
|
-
|
|
1162
|
+
return cachedUniformsShader;
|
|
1163
|
+
};
|
|
1164
|
+
// Cache noise functions as well
|
|
1165
|
+
let cachedNoiseShader = null;
|
|
1166
|
+
const buildNoise = () => {
|
|
1167
|
+
if (cachedNoiseShader)
|
|
1168
|
+
return cachedNoiseShader;
|
|
1169
|
+
cachedNoiseShader = `
|
|
1086
1170
|
|
|
1087
1171
|
// 1. REPLACEMENT PERMUTE:
|
|
1088
1172
|
// Uses a hash function (fract/sin) instead of a modular lookup table.
|
|
@@ -1236,7 +1320,14 @@ float cnoise(vec3 P)
|
|
|
1236
1320
|
return 2.2 * n_xyz;
|
|
1237
1321
|
}
|
|
1238
1322
|
`;
|
|
1239
|
-
|
|
1323
|
+
return cachedNoiseShader;
|
|
1324
|
+
};
|
|
1325
|
+
// Cache color functions as well
|
|
1326
|
+
let cachedColorFunctionsShader = null;
|
|
1327
|
+
const buildColorFunctions = () => {
|
|
1328
|
+
if (cachedColorFunctionsShader)
|
|
1329
|
+
return cachedColorFunctionsShader;
|
|
1330
|
+
cachedColorFunctionsShader = `
|
|
1240
1331
|
|
|
1241
1332
|
vec3 saturation(vec3 rgb, float adjustment) {
|
|
1242
1333
|
const vec3 W = vec3(0.2125, 0.7154, 0.0721);
|
|
@@ -1280,6 +1371,8 @@ vec3 hsv2rgb(vec3 c)
|
|
|
1280
1371
|
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
1281
1372
|
}
|
|
1282
1373
|
`;
|
|
1374
|
+
return cachedColorFunctionsShader;
|
|
1375
|
+
};
|
|
1283
1376
|
const setLinkStyles = (link) => {
|
|
1284
1377
|
link.id = LINK_ID;
|
|
1285
1378
|
link.href = "https://neat.firecms.co";
|
package/dist/NeatGradient.js.map
CHANGED
|
@@ -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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"}
|