shaders 2.5.80 → 2.5.81
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/core/Liquify-Cr-1qPxN.js +228 -0
- package/dist/core/index.js +2 -2
- package/dist/core/registry.js +2 -2
- package/dist/core/{shaderRegistry-9huRXSRI.js → shaderRegistry-DnmRD6xy.js} +1 -1
- package/dist/core/shaders/Liquify/index.d.ts +13 -7
- package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
- package/dist/core/shaders/Liquify/index.js +1 -1
- package/dist/js/createShader.js +1 -1
- package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/js/utils/generatePresetCode.js +3 -2
- package/dist/react/Shader.js +1 -1
- package/dist/react/components/Liquify.d.ts +4 -2
- package/dist/react/components/Liquify.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +3 -2
- package/dist/registry.js +50 -20
- package/dist/solid/components/Liquify.d.ts +4 -2
- package/dist/solid/components/Liquify.d.ts.map +1 -1
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +3 -2
- package/dist/svelte/components/Liquify.svelte.d.ts +2 -1
- package/dist/svelte/{generatePresetCode-BN1puRG_.js → generatePresetCode-6ecNqXs9.js} +3 -2
- package/dist/svelte/index.js +2 -2
- package/dist/svelte/source/components/Liquify.svelte +1 -0
- package/dist/svelte/utils/generatePresetCode.js +1 -1
- package/dist/vue/Liquify.vue_vue_type_script_setup_true_lang.js +3 -2
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/vue/components/Liquify.vue.d.ts +2 -1
- package/dist/vue/components/Liquify.vue.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +3 -2
- package/package.json +1 -1
- package/dist/core/Liquify-Cy6ck3_k.js +0 -157
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { t as applyEdgeHandling } from "./edges-CfGcQniB.js";
|
|
2
|
+
import { c as transformEdges } from "./transformations-B5lM6fYX.js";
|
|
3
|
+
import { t as unpremultiplyAlpha } from "./alpha-C4ptedXe.js";
|
|
4
|
+
import { DataTexture, FloatType, LinearFilter, RGFormat } from "three";
|
|
5
|
+
import { convertToTexture, float, screenUV, texture, vec2, vec4 } from "three/tsl";
|
|
6
|
+
var GRID_SIZE = 64;
|
|
7
|
+
const componentDefinition = {
|
|
8
|
+
name: "Liquify",
|
|
9
|
+
category: "Interactive",
|
|
10
|
+
description: "Liquid-like interactive deformation effect",
|
|
11
|
+
requiresRTT: true,
|
|
12
|
+
requiresChild: true,
|
|
13
|
+
props: {
|
|
14
|
+
intensity: {
|
|
15
|
+
default: 10,
|
|
16
|
+
description: "Scale of the fabric displacement effect",
|
|
17
|
+
ui: {
|
|
18
|
+
type: ["range", "map"],
|
|
19
|
+
min: 0,
|
|
20
|
+
max: 20,
|
|
21
|
+
step: .1,
|
|
22
|
+
label: "Intensity",
|
|
23
|
+
group: "Effect"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
stiffness: {
|
|
27
|
+
default: 3,
|
|
28
|
+
description: "Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)",
|
|
29
|
+
ui: {
|
|
30
|
+
type: "range",
|
|
31
|
+
min: 1,
|
|
32
|
+
max: 30,
|
|
33
|
+
step: .5,
|
|
34
|
+
label: "Stiffness",
|
|
35
|
+
group: "Effect"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
damping: {
|
|
39
|
+
default: 3,
|
|
40
|
+
description: "How quickly fabric motion settles",
|
|
41
|
+
ui: {
|
|
42
|
+
type: "range",
|
|
43
|
+
min: 0,
|
|
44
|
+
max: 10,
|
|
45
|
+
step: .1,
|
|
46
|
+
label: "Damping",
|
|
47
|
+
group: "Effect"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
radius: {
|
|
51
|
+
default: 1,
|
|
52
|
+
description: "Cursor influence area",
|
|
53
|
+
ui: {
|
|
54
|
+
type: "range",
|
|
55
|
+
min: .1,
|
|
56
|
+
max: 1.5,
|
|
57
|
+
step: .1,
|
|
58
|
+
label: "Radius",
|
|
59
|
+
group: "Effect"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
edges: {
|
|
63
|
+
default: "stretch",
|
|
64
|
+
description: "How to handle edges when distortion pushes content out of bounds",
|
|
65
|
+
transform: transformEdges,
|
|
66
|
+
compileTime: true,
|
|
67
|
+
ui: {
|
|
68
|
+
type: "select",
|
|
69
|
+
options: [
|
|
70
|
+
{
|
|
71
|
+
label: "Stretch",
|
|
72
|
+
value: "stretch"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: "Transparent",
|
|
76
|
+
value: "transparent"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
label: "Mirror",
|
|
80
|
+
value: "mirror"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: "Wrap",
|
|
84
|
+
value: "wrap"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
label: "Edges",
|
|
88
|
+
group: "Effect"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
fragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup, dimensions }) => {
|
|
93
|
+
const displacementX = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
94
|
+
const displacementY = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
95
|
+
const velocityX = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
96
|
+
const velocityY = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
97
|
+
const tempVelocityX = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
98
|
+
const tempVelocityY = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
99
|
+
const tempDisplacementX = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
100
|
+
const tempDisplacementY = new Float32Array(GRID_SIZE * GRID_SIZE);
|
|
101
|
+
const displacementData = new Float32Array(GRID_SIZE * GRID_SIZE * 2);
|
|
102
|
+
const displacementTexture = new DataTexture(displacementData, GRID_SIZE, GRID_SIZE, RGFormat, FloatType);
|
|
103
|
+
displacementTexture.magFilter = LinearFilter;
|
|
104
|
+
displacementTexture.minFilter = LinearFilter;
|
|
105
|
+
displacementTexture.needsUpdate = true;
|
|
106
|
+
const displacementField = texture(displacementTexture);
|
|
107
|
+
let prevX = .5;
|
|
108
|
+
let prevY = .5;
|
|
109
|
+
let lastTime = Date.now();
|
|
110
|
+
const SUBSTEPS = 2;
|
|
111
|
+
onBeforeRender(({ pointer }) => {
|
|
112
|
+
const currentTime = Date.now();
|
|
113
|
+
const dt = Math.min((currentTime - lastTime) / 1e3, .016);
|
|
114
|
+
lastTime = currentTime;
|
|
115
|
+
if (dt <= 0) return;
|
|
116
|
+
const aspect = dimensions.width / dimensions.height;
|
|
117
|
+
const stiffness = uniforms.stiffness.uniform.value;
|
|
118
|
+
const damping = uniforms.damping.uniform.value;
|
|
119
|
+
const radius = uniforms.radius.uniform.value * .08;
|
|
120
|
+
const rawVelX = (pointer.x - prevX) / dt;
|
|
121
|
+
const rawVelY = (pointer.y - prevY) / dt;
|
|
122
|
+
const speed = Math.sqrt(rawVelX * rawVelX + rawVelY * rawVelY);
|
|
123
|
+
const clampedSpeed = Math.min(speed, 3);
|
|
124
|
+
let dirX = 0;
|
|
125
|
+
let dirY = 0;
|
|
126
|
+
if (speed > .01) {
|
|
127
|
+
dirX = rawVelX / speed;
|
|
128
|
+
dirY = rawVelY / speed;
|
|
129
|
+
}
|
|
130
|
+
const subDt = dt / SUBSTEPS;
|
|
131
|
+
for (let s = 0; s < SUBSTEPS; s++) {
|
|
132
|
+
if (s === 0 && clampedSpeed > .01) {
|
|
133
|
+
const influenceRadius = radius * 3;
|
|
134
|
+
const minI = Math.max(1, Math.floor((pointer.y - influenceRadius) * GRID_SIZE));
|
|
135
|
+
const maxI = Math.min(GRID_SIZE - 2, Math.ceil((pointer.y + influenceRadius) * GRID_SIZE));
|
|
136
|
+
const minJ = Math.max(1, Math.floor((pointer.x - influenceRadius) * GRID_SIZE));
|
|
137
|
+
const maxJ = Math.min(GRID_SIZE - 2, Math.ceil((pointer.x + influenceRadius) * GRID_SIZE));
|
|
138
|
+
for (let i = minI; i <= maxI; i++) for (let j = minJ; j <= maxJ; j++) {
|
|
139
|
+
const idx = i * GRID_SIZE + j;
|
|
140
|
+
const cellX = (j + .5) / GRID_SIZE;
|
|
141
|
+
const cellY = (i + .5) / GRID_SIZE;
|
|
142
|
+
const ddx = aspect >= 1 ? (cellX - pointer.x) * aspect : cellX - pointer.x;
|
|
143
|
+
const ddy = aspect >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect;
|
|
144
|
+
const dist = Math.sqrt(ddx * ddx + ddy * ddy);
|
|
145
|
+
if (dist < influenceRadius) {
|
|
146
|
+
const forceMag = Math.exp(-dist * dist / (radius * radius)) * clampedSpeed * dt * 2;
|
|
147
|
+
velocityX[idx] += dirX * forceMag;
|
|
148
|
+
velocityY[idx] += dirY * forceMag;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
const dampFactor = Math.max(0, Math.min(1, 1 - damping * subDt));
|
|
153
|
+
const shearK = stiffness * .35;
|
|
154
|
+
tempVelocityX.set(velocityX);
|
|
155
|
+
tempVelocityY.set(velocityY);
|
|
156
|
+
tempDisplacementX.set(displacementX);
|
|
157
|
+
tempDisplacementY.set(displacementY);
|
|
158
|
+
for (let i = 1; i < GRID_SIZE - 1; i++) for (let j = 1; j < GRID_SIZE - 1; j++) {
|
|
159
|
+
const idx = i * GRID_SIZE + j;
|
|
160
|
+
let fx = 0;
|
|
161
|
+
let fy = 0;
|
|
162
|
+
const idxL = idx - 1;
|
|
163
|
+
const idxR = idx + 1;
|
|
164
|
+
const idxU = idx - GRID_SIZE;
|
|
165
|
+
const idxD = idx + GRID_SIZE;
|
|
166
|
+
fx += stiffness * (displacementX[idxL] - displacementX[idx]);
|
|
167
|
+
fx += stiffness * (displacementX[idxR] - displacementX[idx]);
|
|
168
|
+
fx += stiffness * (displacementX[idxU] - displacementX[idx]);
|
|
169
|
+
fx += stiffness * (displacementX[idxD] - displacementX[idx]);
|
|
170
|
+
fy += stiffness * (displacementY[idxL] - displacementY[idx]);
|
|
171
|
+
fy += stiffness * (displacementY[idxR] - displacementY[idx]);
|
|
172
|
+
fy += stiffness * (displacementY[idxU] - displacementY[idx]);
|
|
173
|
+
fy += stiffness * (displacementY[idxD] - displacementY[idx]);
|
|
174
|
+
const idxUL = idx - GRID_SIZE - 1;
|
|
175
|
+
const idxUR = idx - GRID_SIZE + 1;
|
|
176
|
+
const idxDL = idx + GRID_SIZE - 1;
|
|
177
|
+
const idxDR = idx + GRID_SIZE + 1;
|
|
178
|
+
fx += shearK * (displacementX[idxUL] - displacementX[idx]);
|
|
179
|
+
fx += shearK * (displacementX[idxUR] - displacementX[idx]);
|
|
180
|
+
fx += shearK * (displacementX[idxDL] - displacementX[idx]);
|
|
181
|
+
fx += shearK * (displacementX[idxDR] - displacementX[idx]);
|
|
182
|
+
fy += shearK * (displacementY[idxUL] - displacementY[idx]);
|
|
183
|
+
fy += shearK * (displacementY[idxUR] - displacementY[idx]);
|
|
184
|
+
fy += shearK * (displacementY[idxDL] - displacementY[idx]);
|
|
185
|
+
fy += shearK * (displacementY[idxDR] - displacementY[idx]);
|
|
186
|
+
fx -= stiffness * .1 * displacementX[idx];
|
|
187
|
+
fy -= stiffness * .1 * displacementY[idx];
|
|
188
|
+
tempVelocityX[idx] = velocityX[idx] * dampFactor + fx * subDt;
|
|
189
|
+
tempVelocityY[idx] = velocityY[idx] * dampFactor + fy * subDt;
|
|
190
|
+
tempDisplacementX[idx] = displacementX[idx] + tempVelocityX[idx] * subDt;
|
|
191
|
+
tempDisplacementY[idx] = displacementY[idx] + tempVelocityY[idx] * subDt;
|
|
192
|
+
tempDisplacementX[idx] = Math.max(-.5, Math.min(.5, tempDisplacementX[idx]));
|
|
193
|
+
tempDisplacementY[idx] = Math.max(-.5, Math.min(.5, tempDisplacementY[idx]));
|
|
194
|
+
}
|
|
195
|
+
velocityX.set(tempVelocityX);
|
|
196
|
+
velocityY.set(tempVelocityY);
|
|
197
|
+
displacementX.set(tempDisplacementX);
|
|
198
|
+
displacementY.set(tempDisplacementY);
|
|
199
|
+
}
|
|
200
|
+
for (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) {
|
|
201
|
+
const idx = i * GRID_SIZE + j;
|
|
202
|
+
const dIdx = idx * 2;
|
|
203
|
+
displacementData[dIdx] = displacementX[idx];
|
|
204
|
+
displacementData[dIdx + 1] = displacementY[idx];
|
|
205
|
+
}
|
|
206
|
+
displacementTexture.needsUpdate = true;
|
|
207
|
+
prevX = pointer.x;
|
|
208
|
+
prevY = pointer.y;
|
|
209
|
+
});
|
|
210
|
+
onCleanup(() => {
|
|
211
|
+
displacementTexture.dispose();
|
|
212
|
+
});
|
|
213
|
+
if (!childNode) return vec4(0, 0, 0, 0);
|
|
214
|
+
const childTexture = convertToTexture(childNode);
|
|
215
|
+
onCleanup(() => {
|
|
216
|
+
if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
|
|
217
|
+
});
|
|
218
|
+
const displacement = displacementField.sample(screenUV).xy;
|
|
219
|
+
const intensityScale = uniforms.intensity.uniform.mul(.1);
|
|
220
|
+
const scaledDisplacement = displacement.mul(intensityScale);
|
|
221
|
+
const maxDisp = float(.15);
|
|
222
|
+
const clampedDisplacement = scaledDisplacement.clamp(vec2(maxDisp.negate(), maxDisp.negate()), vec2(maxDisp, maxDisp));
|
|
223
|
+
const distortedUV = screenUV.sub(clampedDisplacement);
|
|
224
|
+
return unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform.value));
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
var Liquify_default = componentDefinition;
|
|
228
|
+
export { componentDefinition as n, Liquify_default as t };
|
package/dist/core/index.js
CHANGED
|
@@ -53,7 +53,7 @@ import "./Kaleidoscope-B0McCEhc.js";
|
|
|
53
53
|
import "./LensFlare-DXgpPyJK.js";
|
|
54
54
|
import "./LinearBlur-CBl0B23J.js";
|
|
55
55
|
import "./LinearGradient-C0FT7-Lc.js";
|
|
56
|
-
import "./Liquify-
|
|
56
|
+
import "./Liquify-Cr-1qPxN.js";
|
|
57
57
|
import "./Mirror-DfZBEOUf.js";
|
|
58
58
|
import "./Neon-E8whPM6C.js";
|
|
59
59
|
import "./Paper-DJwBbPxA.js";
|
|
@@ -95,7 +95,7 @@ import "./VideoTexture-DDnc6aVv.js";
|
|
|
95
95
|
import "./WaveDistortion-Caj3cQz7.js";
|
|
96
96
|
import "./WebcamTexture-rb0dLKSc.js";
|
|
97
97
|
import "./ZoomBlur-DUrSxwl0.js";
|
|
98
|
-
import { t as getAllShaders } from "./shaderRegistry-
|
|
98
|
+
import { t as getAllShaders } from "./shaderRegistry-DnmRD6xy.js";
|
|
99
99
|
import { Material, Mesh, MeshBasicNodeMaterial, OrthographicCamera, PlaneGeometry, SRGBColorSpace, Scene, Vector2, WebGPURenderer } from "three/webgpu";
|
|
100
100
|
import { WebGLRenderer } from "three";
|
|
101
101
|
import { PI, abs, add, atan, clamp, convertToTexture, cos, div, dot, float, fract, max, min, mix, mul, pow, screenUV, sign, sin, smoothstep, sqrt, step, sub, time, uniform, uv, vec2, vec3, vec4 } from "three/tsl";
|
package/dist/core/registry.js
CHANGED
|
@@ -53,7 +53,7 @@ import "./Kaleidoscope-B0McCEhc.js";
|
|
|
53
53
|
import "./LensFlare-DXgpPyJK.js";
|
|
54
54
|
import "./LinearBlur-CBl0B23J.js";
|
|
55
55
|
import "./LinearGradient-C0FT7-Lc.js";
|
|
56
|
-
import "./Liquify-
|
|
56
|
+
import "./Liquify-Cr-1qPxN.js";
|
|
57
57
|
import "./Mirror-DfZBEOUf.js";
|
|
58
58
|
import "./Neon-E8whPM6C.js";
|
|
59
59
|
import "./Paper-DJwBbPxA.js";
|
|
@@ -95,5 +95,5 @@ import "./VideoTexture-DDnc6aVv.js";
|
|
|
95
95
|
import "./WaveDistortion-Caj3cQz7.js";
|
|
96
96
|
import "./WebcamTexture-rb0dLKSc.js";
|
|
97
97
|
import "./ZoomBlur-DUrSxwl0.js";
|
|
98
|
-
import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-
|
|
98
|
+
import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-DnmRD6xy.js";
|
|
99
99
|
export { getAllShaders, getShaderByName, getShaderCategories, getShadersByCategory, shaderRegistry };
|
|
@@ -47,7 +47,7 @@ import { n as componentDefinition$45 } from "./Kaleidoscope-B0McCEhc.js";
|
|
|
47
47
|
import { n as componentDefinition$46 } from "./LensFlare-DXgpPyJK.js";
|
|
48
48
|
import { n as componentDefinition$47 } from "./LinearBlur-CBl0B23J.js";
|
|
49
49
|
import { n as componentDefinition$48 } from "./LinearGradient-C0FT7-Lc.js";
|
|
50
|
-
import { n as componentDefinition$49 } from "./Liquify-
|
|
50
|
+
import { n as componentDefinition$49 } from "./Liquify-Cr-1qPxN.js";
|
|
51
51
|
import { n as componentDefinition$50 } from "./Mirror-DfZBEOUf.js";
|
|
52
52
|
import { n as componentDefinition$51 } from "./Neon-E8whPM6C.js";
|
|
53
53
|
import { n as componentDefinition$52 } from "./Paper-DJwBbPxA.js";
|
|
@@ -2,23 +2,29 @@ import { ComponentDefinition } from '../../types';
|
|
|
2
2
|
|
|
3
3
|
export interface ComponentProps {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Scale of the fabric displacement effect
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* @default 1
|
|
7
|
+
* @default 10
|
|
9
8
|
*/
|
|
10
9
|
intensity: number;
|
|
11
10
|
/**
|
|
12
|
-
*
|
|
11
|
+
* Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)
|
|
12
|
+
*
|
|
13
|
+
* Accepts a number between 1 and 30.
|
|
14
|
+
* @default 3
|
|
15
|
+
*/
|
|
16
|
+
stiffness: number;
|
|
17
|
+
/**
|
|
18
|
+
* How quickly fabric motion settles
|
|
13
19
|
*
|
|
14
20
|
* Accepts a number between 0 and 10.
|
|
15
21
|
* @default 3
|
|
16
22
|
*/
|
|
17
|
-
|
|
23
|
+
damping: number;
|
|
18
24
|
/**
|
|
19
|
-
*
|
|
25
|
+
* Cursor influence area
|
|
20
26
|
*
|
|
21
|
-
* Accepts a number between 0 and
|
|
27
|
+
* Accepts a number between 0.1 and 1.5.
|
|
22
28
|
* @default 1
|
|
23
29
|
*/
|
|
24
30
|
radius: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shaders/Liquify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AASvE,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shaders/Liquify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AASvE,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CAChB;AAID,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,cAAc,CAsQnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "../../edges-CfGcQniB.js";
|
|
2
2
|
import "../../transformations-B5lM6fYX.js";
|
|
3
3
|
import "../../alpha-C4ptedXe.js";
|
|
4
|
-
import { n as componentDefinition, t as Liquify_default } from "../../Liquify-
|
|
4
|
+
import { n as componentDefinition, t as Liquify_default } from "../../Liquify-Cr-1qPxN.js";
|
|
5
5
|
export { componentDefinition, Liquify_default as default };
|
package/dist/js/createShader.js
CHANGED
|
@@ -40,7 +40,7 @@ async function createShader(canvas, preset, options) {
|
|
|
40
40
|
if (isExternalUser() && shouldCollectTelemetry(options?.disableTelemetry || false, options?.isPreview || false)) {
|
|
41
41
|
const checkRendering = () => {
|
|
42
42
|
if (renderer.getPerformanceStats().fps > 0) {
|
|
43
|
-
telemetryCollector = startTelemetry(renderer, "2.5.
|
|
43
|
+
telemetryCollector = startTelemetry(renderer, "2.5.81", options?.disableTelemetry || false, false);
|
|
44
44
|
if (telemetryCollector) telemetryCollector.start();
|
|
45
45
|
telemetryStartTimeout = null;
|
|
46
46
|
} else telemetryStartTimeout = setTimeout(checkRendering, 500);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA4sCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAoBlG;AAGD,eAAO,MAAM,mBAAmB,UA4F/B,CAAA"}
|
package/dist/react/Shader.js
CHANGED
|
@@ -80,7 +80,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
|
|
|
80
80
|
return;
|
|
81
81
|
}
|
|
82
82
|
if (rendererRef.current.getPerformanceStats().fps > 0) {
|
|
83
|
-
telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.
|
|
83
|
+
telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.81", disableTelemetry, isPreview);
|
|
84
84
|
if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
|
|
85
85
|
telemetryStartTimeoutRef.current = null;
|
|
86
86
|
} else telemetryStartTimeoutRef.current = window.setTimeout(checkRendering, 500);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { BlendMode, TransformConfig } from '../../core';
|
|
2
|
+
import { BlendMode, PropDriver, TransformConfig } from '../../core';
|
|
3
3
|
import { ComponentProps } from '../../core/shaders/Liquify';
|
|
4
4
|
|
|
5
5
|
export type { ComponentProps };
|
|
@@ -22,7 +22,9 @@ interface BaseShaderProps {
|
|
|
22
22
|
* Component-specific props that merge base props with shader-specific props
|
|
23
23
|
* Note: ComponentProps are made optional since they have defaults from the shader definition
|
|
24
24
|
*/
|
|
25
|
-
type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps,
|
|
25
|
+
type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps, 'intensity'>> & {
|
|
26
|
+
intensity?: ComponentProps['intensity'] | PropDriver;
|
|
27
|
+
};
|
|
26
28
|
/**
|
|
27
29
|
* The main React wrapper component for Shader shader nodes
|
|
28
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liquify.d.ts","sourceRoot":"","sources":["../../src/components/Liquify.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAGH,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"Liquify.d.ts","sourceRoot":"","sources":["../../src/components/Liquify.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAGH,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,YAAY,EAAE,cAAc,EAAE,CAAC;AAI/B;;GAEG;AACH,UAAU,eAAe;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACxB;AAOD;;;GAGG;AACH,KAAK,oBAAoB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,GAAG;IACzF,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;CACtD,CAAC;AAwDF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmM1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AA+tCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAsElG;AAGD,eAAO,MAAM,mBAAmB,UA4F/B,CAAA"}
|
package/dist/registry.js
CHANGED
|
@@ -9830,36 +9830,51 @@ export const shaderRegistry = [
|
|
|
9830
9830
|
"requiresChild": true,
|
|
9831
9831
|
"props": {
|
|
9832
9832
|
"intensity": {
|
|
9833
|
-
"default":
|
|
9834
|
-
"description": "
|
|
9833
|
+
"default": 10,
|
|
9834
|
+
"description": "Scale of the fabric displacement effect",
|
|
9835
9835
|
"ui": {
|
|
9836
|
-
"type":
|
|
9836
|
+
"type": [
|
|
9837
|
+
"range",
|
|
9838
|
+
"map"
|
|
9839
|
+
],
|
|
9837
9840
|
"min": 0,
|
|
9838
|
-
"max":
|
|
9841
|
+
"max": 20,
|
|
9839
9842
|
"step": 0.1,
|
|
9840
9843
|
"label": "Intensity",
|
|
9841
9844
|
"group": "Effect"
|
|
9842
9845
|
}
|
|
9843
9846
|
},
|
|
9844
|
-
"
|
|
9847
|
+
"stiffness": {
|
|
9845
9848
|
"default": 3,
|
|
9846
|
-
"description": "
|
|
9849
|
+
"description": "Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)",
|
|
9850
|
+
"ui": {
|
|
9851
|
+
"type": "range",
|
|
9852
|
+
"min": 1,
|
|
9853
|
+
"max": 30,
|
|
9854
|
+
"step": 0.5,
|
|
9855
|
+
"label": "Stiffness",
|
|
9856
|
+
"group": "Effect"
|
|
9857
|
+
}
|
|
9858
|
+
},
|
|
9859
|
+
"damping": {
|
|
9860
|
+
"default": 3,
|
|
9861
|
+
"description": "How quickly fabric motion settles",
|
|
9847
9862
|
"ui": {
|
|
9848
9863
|
"type": "range",
|
|
9849
9864
|
"min": 0,
|
|
9850
9865
|
"max": 10,
|
|
9851
9866
|
"step": 0.1,
|
|
9852
|
-
"label": "
|
|
9867
|
+
"label": "Damping",
|
|
9853
9868
|
"group": "Effect"
|
|
9854
9869
|
}
|
|
9855
9870
|
},
|
|
9856
9871
|
"radius": {
|
|
9857
9872
|
"default": 1,
|
|
9858
|
-
"description": "
|
|
9873
|
+
"description": "Cursor influence area",
|
|
9859
9874
|
"ui": {
|
|
9860
9875
|
"type": "range",
|
|
9861
|
-
"min": 0,
|
|
9862
|
-
"max":
|
|
9876
|
+
"min": 0.1,
|
|
9877
|
+
"max": 1.5,
|
|
9863
9878
|
"step": 0.1,
|
|
9864
9879
|
"label": "Radius",
|
|
9865
9880
|
"group": "Effect"
|
|
@@ -9898,39 +9913,54 @@ export const shaderRegistry = [
|
|
|
9898
9913
|
"propsMetadata": {
|
|
9899
9914
|
"intensity": {
|
|
9900
9915
|
"ui": {
|
|
9901
|
-
"type":
|
|
9916
|
+
"type": [
|
|
9917
|
+
"range",
|
|
9918
|
+
"map"
|
|
9919
|
+
],
|
|
9902
9920
|
"min": 0,
|
|
9903
|
-
"max":
|
|
9921
|
+
"max": 20,
|
|
9904
9922
|
"step": 0.1,
|
|
9905
9923
|
"label": "Intensity",
|
|
9906
9924
|
"group": "Effect"
|
|
9907
9925
|
},
|
|
9908
|
-
"default":
|
|
9909
|
-
"description": "
|
|
9926
|
+
"default": 10,
|
|
9927
|
+
"description": "Scale of the fabric displacement effect"
|
|
9910
9928
|
},
|
|
9911
|
-
"
|
|
9929
|
+
"stiffness": {
|
|
9930
|
+
"ui": {
|
|
9931
|
+
"type": "range",
|
|
9932
|
+
"min": 1,
|
|
9933
|
+
"max": 30,
|
|
9934
|
+
"step": 0.5,
|
|
9935
|
+
"label": "Stiffness",
|
|
9936
|
+
"group": "Effect"
|
|
9937
|
+
},
|
|
9938
|
+
"default": 3,
|
|
9939
|
+
"description": "Fabric rigidity (higher = stiffer canvas, lower = stretchy silk)"
|
|
9940
|
+
},
|
|
9941
|
+
"damping": {
|
|
9912
9942
|
"ui": {
|
|
9913
9943
|
"type": "range",
|
|
9914
9944
|
"min": 0,
|
|
9915
9945
|
"max": 10,
|
|
9916
9946
|
"step": 0.1,
|
|
9917
|
-
"label": "
|
|
9947
|
+
"label": "Damping",
|
|
9918
9948
|
"group": "Effect"
|
|
9919
9949
|
},
|
|
9920
9950
|
"default": 3,
|
|
9921
|
-
"description": "
|
|
9951
|
+
"description": "How quickly fabric motion settles"
|
|
9922
9952
|
},
|
|
9923
9953
|
"radius": {
|
|
9924
9954
|
"ui": {
|
|
9925
9955
|
"type": "range",
|
|
9926
|
-
"min": 0,
|
|
9927
|
-
"max":
|
|
9956
|
+
"min": 0.1,
|
|
9957
|
+
"max": 1.5,
|
|
9928
9958
|
"step": 0.1,
|
|
9929
9959
|
"label": "Radius",
|
|
9930
9960
|
"group": "Effect"
|
|
9931
9961
|
},
|
|
9932
9962
|
"default": 1,
|
|
9933
|
-
"description": "
|
|
9963
|
+
"description": "Cursor influence area"
|
|
9934
9964
|
},
|
|
9935
9965
|
"edges": {
|
|
9936
9966
|
"ui": {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
|
-
import { BlendMode, TransformConfig } from '../../core';
|
|
2
|
+
import { BlendMode, PropDriver, TransformConfig } from '../../core';
|
|
3
3
|
import { ComponentProps } from '../../core/shaders/Liquify';
|
|
4
4
|
export type { ComponentProps };
|
|
5
5
|
/**
|
|
@@ -20,7 +20,9 @@ interface BaseShaderProps {
|
|
|
20
20
|
* Component-specific props that merge base props with shader-specific props
|
|
21
21
|
* Note: ComponentProps are made optional since they have defaults from the shader definition
|
|
22
22
|
*/
|
|
23
|
-
type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps,
|
|
23
|
+
type ShaderComponentProps = BaseShaderProps & Partial<Omit<ComponentProps, 'intensity'>> & {
|
|
24
|
+
intensity?: ComponentProps['intensity'] | PropDriver;
|
|
25
|
+
};
|
|
24
26
|
/**
|
|
25
27
|
* The main Solid wrapper component for Shader shader nodes
|
|
26
28
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liquify.d.ts","sourceRoot":"","sources":["../../src/components/Liquify.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAGH,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"Liquify.d.ts","sourceRoot":"","sources":["../../src/components/Liquify.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4D,KAAK,GAAG,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAGH,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,YAAY,EAAE,cAAc,EAAE,CAAC;AAI/B;;GAEG;AACH,UAAU,eAAe;IACrB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACxC;AAOD;;;GAGG;AACH,KAAK,oBAAoB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,GAAG;IACzF,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;CACtD,CAAC;AAmCF;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,KAAK,EAAE,oBAAoB,eA+LlE"}
|
|
@@ -63,7 +63,7 @@ function Shader(allProps) {
|
|
|
63
63
|
const checkRendering = () => {
|
|
64
64
|
const stats = rendererInstance.getPerformanceStats();
|
|
65
65
|
if (stats.fps > 0) {
|
|
66
|
-
const version = "2.5.
|
|
66
|
+
const version = "2.5.81";
|
|
67
67
|
telemetryCollector = startTelemetry(rendererInstance, version, props.disableTelemetry, props.isPreview);
|
|
68
68
|
if (telemetryCollector) {
|
|
69
69
|
telemetryCollector.start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAstCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAsElG;AAGD,eAAO,MAAM,mBAAmB,UA4F/B,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { type BlendMode, type TransformConfig } from '../../core';
|
|
1
|
+
import { type BlendMode, type PropDriver, type TransformConfig } from '../../core';
|
|
2
2
|
import { type ComponentProps } from '../../core/shaders/Liquify';
|
|
3
3
|
/**
|
|
4
4
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
5
5
|
*/
|
|
6
6
|
interface ExtendedComponentProps extends Partial<ComponentProps> {
|
|
7
|
+
intensity?: ComponentProps['intensity'] | PropDriver;
|
|
7
8
|
blendMode?: BlendMode;
|
|
8
9
|
opacity?: number;
|
|
9
10
|
visible?: boolean;
|
package/dist/svelte/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as generatePresetCode } from "./generatePresetCode-
|
|
1
|
+
import { n as generatePresetCode } from "./generatePresetCode-6ecNqXs9.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as $ from "svelte/internal/client";
|
|
4
4
|
import { getContext, onDestroy, onMount, setContext } from "svelte";
|
|
@@ -13188,7 +13188,7 @@ function Shader($$anchor, $$props) {
|
|
|
13188
13188
|
const checkRendering = () => {
|
|
13189
13189
|
if (!rendererInstance) return;
|
|
13190
13190
|
if (rendererInstance.getPerformanceStats().fps > 0) {
|
|
13191
|
-
telemetryCollector = startTelemetry(rendererInstance, "2.5.
|
|
13191
|
+
telemetryCollector = startTelemetry(rendererInstance, "2.5.81", disableTelemetry(), isPreview());
|
|
13192
13192
|
if (telemetryCollector) telemetryCollector.start();
|
|
13193
13193
|
telemetryStartTimeout = null;
|
|
13194
13194
|
} else telemetryStartTimeout = window.setTimeout(checkRendering, 500);
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
20
20
|
*/
|
|
21
21
|
interface ExtendedComponentProps extends Partial<ComponentProps> {
|
|
22
|
+
intensity?: ComponentProps['intensity'] | PropDriver;
|
|
22
23
|
blendMode?: BlendMode;
|
|
23
24
|
opacity?: number;
|
|
24
25
|
visible?: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as generatePresetCode, t as availableComponents } from "../generatePresetCode-
|
|
1
|
+
import { n as generatePresetCode, t as availableComponents } from "../generatePresetCode-6ecNqXs9.js";
|
|
2
2
|
export { availableComponents, generatePresetCode };
|
|
@@ -6,6 +6,7 @@ var _hoisted_1 = ["data-shader-id"];
|
|
|
6
6
|
var Liquify_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
7
7
|
__name: "Liquify",
|
|
8
8
|
props: /* @__PURE__ */ mergeDefaults({
|
|
9
|
+
intensity: {},
|
|
9
10
|
blendMode: {},
|
|
10
11
|
opacity: {},
|
|
11
12
|
visible: { type: Boolean },
|
|
@@ -14,8 +15,8 @@ var Liquify_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ define
|
|
|
14
15
|
maskType: {},
|
|
15
16
|
renderOrder: {},
|
|
16
17
|
transform: {},
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
stiffness: {},
|
|
19
|
+
damping: {},
|
|
19
20
|
radius: {},
|
|
20
21
|
edges: {}
|
|
21
22
|
}, {
|
|
@@ -57,7 +57,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
57
57
|
const startTelemetryWhenReady = () => {
|
|
58
58
|
const checkRendering = () => {
|
|
59
59
|
if (rendererInstance.value.getPerformanceStats().fps > 0) {
|
|
60
|
-
telemetryCollector = startTelemetry(rendererInstance.value, "2.5.
|
|
60
|
+
telemetryCollector = startTelemetry(rendererInstance.value, "2.5.81", props.disableTelemetry, props.isPreview);
|
|
61
61
|
if (telemetryCollector) telemetryCollector.start();
|
|
62
62
|
telemetryStartTimeout = null;
|
|
63
63
|
} else telemetryStartTimeout = setTimeout(checkRendering, 500);
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { BlendMode, TransformConfig } from '../../core';
|
|
1
|
+
import { BlendMode, PropDriver, TransformConfig } from '../../core';
|
|
2
2
|
import { ComponentProps } from '../../core/shaders/Liquify';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Define component props including blend mode, opacity, visibility, masking, and transformation
|
|
6
6
|
*/
|
|
7
7
|
interface ExtendedComponentProps extends Partial<ComponentProps> {
|
|
8
|
+
intensity?: ComponentProps['intensity'] | PropDriver;
|
|
8
9
|
blendMode?: BlendMode;
|
|
9
10
|
opacity?: number;
|
|
10
11
|
visible?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liquify.vue.d.ts","sourceRoot":"","sources":["../../src/components/Liquify.vue"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"Liquify.vue.d.ts","sourceRoot":"","sources":["../../src/components/Liquify.vue"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EAId,KAAK,UAAU,EACf,KAAK,eAAe,EACrB,MAAM,cAAc,CAAA;AAIrB,OAAO,EAAsB,KAAK,cAAc,EAAC,MAAM,sBAAsB,CAAA;AAI7E;;GAEG;AACH,UAAU,sBAAuB,SAAQ,OAAO,CAAC,cAAc,CAAC;IAC9D,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACtC;AA0RD,iBAAS,cAAc;qBAsCM,GAAG;EAK/B;AAUD,QAAA,MAAM,eAAe;;;;;;;eAvVP,SAAS;aAEX,OAAO;4EA2VjB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAAvG,wBAAwG;AACxG,KAAK,sBAAsB,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACjE,KAAK,6BAA6B,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;CAAE,CAAC;AAC9M,KAAK,kBAAkB,CAAC,CAAC,EAAE,CAAC,IAAI;KAE1B,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QACxE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;KACb,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AACN,KAAK,cAAc,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC;AACxD,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAAE,QAAO;QAClD,MAAM,EAAE,CAAC,CAAC;KACT,CAAA;CAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"generatePresetCode.d.ts","sourceRoot":"","sources":["../../src/utils/generatePresetCode.ts"],"names":[],"mappings":"AAAA,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAA;CAC7B;AAED,UAAU,YAAY;IACpB,UAAU,EAAE,eAAe,EAAE,CAAA;CAC9B;AAqtCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UA4F/B,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
import { t as applyEdgeHandling } from "./edges-CfGcQniB.js";
|
|
2
|
-
import { c as transformEdges } from "./transformations-B5lM6fYX.js";
|
|
3
|
-
import { t as unpremultiplyAlpha } from "./alpha-C4ptedXe.js";
|
|
4
|
-
import { DataTexture, FloatType, LinearFilter, RGFormat } from "three";
|
|
5
|
-
import { convertToTexture, float, screenUV, texture, uniform, vec2, vec4 } from "three/tsl";
|
|
6
|
-
var GRID_SIZE = 32;
|
|
7
|
-
var displacementStateCache = /* @__PURE__ */ new WeakMap();
|
|
8
|
-
var getOrCreateDisplacementState = (uniforms) => {
|
|
9
|
-
let state = displacementStateCache.get(uniforms);
|
|
10
|
-
if (!state) {
|
|
11
|
-
const data = new Float32Array(GRID_SIZE * GRID_SIZE * 2);
|
|
12
|
-
const dataTexture = new DataTexture(data, GRID_SIZE, GRID_SIZE, RGFormat, FloatType);
|
|
13
|
-
dataTexture.magFilter = LinearFilter;
|
|
14
|
-
dataTexture.minFilter = LinearFilter;
|
|
15
|
-
dataTexture.needsUpdate = true;
|
|
16
|
-
state = {
|
|
17
|
-
dataTexture,
|
|
18
|
-
data,
|
|
19
|
-
tslNode: texture(dataTexture),
|
|
20
|
-
initialized: false
|
|
21
|
-
};
|
|
22
|
-
displacementStateCache.set(uniforms, state);
|
|
23
|
-
}
|
|
24
|
-
return state;
|
|
25
|
-
};
|
|
26
|
-
const componentDefinition = {
|
|
27
|
-
name: "Liquify",
|
|
28
|
-
category: "Interactive",
|
|
29
|
-
description: "Liquid-like interactive deformation effect",
|
|
30
|
-
requiresRTT: true,
|
|
31
|
-
requiresChild: true,
|
|
32
|
-
props: {
|
|
33
|
-
intensity: {
|
|
34
|
-
default: 1,
|
|
35
|
-
description: "Strength of the distortion effect",
|
|
36
|
-
ui: {
|
|
37
|
-
type: "range",
|
|
38
|
-
min: 0,
|
|
39
|
-
max: 5,
|
|
40
|
-
step: .1,
|
|
41
|
-
label: "Intensity",
|
|
42
|
-
group: "Effect"
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
decay: {
|
|
46
|
-
default: 3,
|
|
47
|
-
description: "Rate of distortion decay (higher = faster)",
|
|
48
|
-
ui: {
|
|
49
|
-
type: "range",
|
|
50
|
-
min: 0,
|
|
51
|
-
max: 10,
|
|
52
|
-
step: .1,
|
|
53
|
-
label: "Decay",
|
|
54
|
-
group: "Effect"
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
radius: {
|
|
58
|
-
default: 1,
|
|
59
|
-
description: "Radius of the distortion effect",
|
|
60
|
-
ui: {
|
|
61
|
-
type: "range",
|
|
62
|
-
min: 0,
|
|
63
|
-
max: 3,
|
|
64
|
-
step: .1,
|
|
65
|
-
label: "Radius",
|
|
66
|
-
group: "Effect"
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
edges: {
|
|
70
|
-
default: "stretch",
|
|
71
|
-
description: "How to handle edges when distortion pushes content out of bounds",
|
|
72
|
-
transform: transformEdges,
|
|
73
|
-
compileTime: true,
|
|
74
|
-
ui: {
|
|
75
|
-
type: "select",
|
|
76
|
-
options: [
|
|
77
|
-
{
|
|
78
|
-
label: "Stretch",
|
|
79
|
-
value: "stretch"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
label: "Transparent",
|
|
83
|
-
value: "transparent"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
label: "Mirror",
|
|
87
|
-
value: "mirror"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
label: "Wrap",
|
|
91
|
-
value: "wrap"
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
label: "Edges",
|
|
95
|
-
group: "Effect"
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
},
|
|
99
|
-
fragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup }) => {
|
|
100
|
-
const { dataTexture: displacementTexture, data: displacementData, tslNode: displacementField } = getOrCreateDisplacementState(uniforms);
|
|
101
|
-
const mouseVelX = uniform(0);
|
|
102
|
-
const mouseVelY = uniform(0);
|
|
103
|
-
let prevX = .5;
|
|
104
|
-
let prevY = .5;
|
|
105
|
-
let lastTime = Date.now();
|
|
106
|
-
onBeforeRender(({ pointer, dimensions }) => {
|
|
107
|
-
const currentTime = Date.now();
|
|
108
|
-
const dt = Math.min((currentTime - lastTime) / 1e3, .016);
|
|
109
|
-
lastTime = currentTime;
|
|
110
|
-
const aspect = dimensions.width / dimensions.height;
|
|
111
|
-
const velX = dt > 0 ? (pointer.x - prevX) / dt : 0;
|
|
112
|
-
const velY = dt > 0 ? (pointer.y - prevY) / dt : 0;
|
|
113
|
-
mouseVelX.value = mouseVelX.value * .85 + velX * .15;
|
|
114
|
-
mouseVelY.value = mouseVelY.value * .85 + velY * .15;
|
|
115
|
-
const decay = uniforms.decay.uniform.value;
|
|
116
|
-
const intensity = uniforms.intensity.uniform.value;
|
|
117
|
-
const radius = uniforms.radius.uniform.value * .05;
|
|
118
|
-
for (let i = 0; i < GRID_SIZE; i++) for (let j = 0; j < GRID_SIZE; j++) {
|
|
119
|
-
const idx = (i * GRID_SIZE + j) * 2;
|
|
120
|
-
displacementData[idx] *= 1 - decay * dt;
|
|
121
|
-
displacementData[idx + 1] *= 1 - decay * dt;
|
|
122
|
-
const cellX = (j + .5) / GRID_SIZE;
|
|
123
|
-
const cellY = (i + .5) / GRID_SIZE;
|
|
124
|
-
const dx = aspect >= 1 ? (cellX - pointer.x) * aspect : cellX - pointer.x;
|
|
125
|
-
const dy = aspect >= 1 ? cellY - pointer.y : (cellY - pointer.y) / aspect;
|
|
126
|
-
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
127
|
-
if (dist < radius * 2 && Math.abs(velX) + Math.abs(velY) > .01) {
|
|
128
|
-
const influence = Math.exp(-dist * dist / (radius * radius));
|
|
129
|
-
displacementData[idx] += mouseVelX.value * influence * intensity * dt * .5;
|
|
130
|
-
displacementData[idx + 1] += mouseVelY.value * influence * intensity * dt * .5;
|
|
131
|
-
}
|
|
132
|
-
displacementData[idx] = Math.max(-1, Math.min(1, displacementData[idx]));
|
|
133
|
-
displacementData[idx + 1] = Math.max(-1, Math.min(1, displacementData[idx + 1]));
|
|
134
|
-
}
|
|
135
|
-
displacementTexture.needsUpdate = true;
|
|
136
|
-
prevX = pointer.x;
|
|
137
|
-
prevY = pointer.y;
|
|
138
|
-
});
|
|
139
|
-
onCleanup(() => {
|
|
140
|
-
displacementTexture.dispose();
|
|
141
|
-
displacementStateCache.delete(uniforms);
|
|
142
|
-
});
|
|
143
|
-
if (!childNode) return vec4(0, 0, 0, 0);
|
|
144
|
-
const childTexture = convertToTexture(childNode);
|
|
145
|
-
onCleanup(() => {
|
|
146
|
-
if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
|
|
147
|
-
});
|
|
148
|
-
const displacement = displacementField.sample(screenUV).xy;
|
|
149
|
-
const maxDisplacement = float(.2);
|
|
150
|
-
const negMaxDisplacement = float(-.2);
|
|
151
|
-
const clampedDisplacement = displacement.clamp(vec2(negMaxDisplacement, negMaxDisplacement), vec2(maxDisplacement, maxDisplacement));
|
|
152
|
-
const distortedUV = screenUV.sub(clampedDisplacement);
|
|
153
|
-
return unpremultiplyAlpha(applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform.value));
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
var Liquify_default = componentDefinition;
|
|
157
|
-
export { componentDefinition as n, Liquify_default as t };
|