shaders 2.5.122 → 2.5.124
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/{FloatingParticles-DKoG78j0.js → FloatingParticles-LMsFTJKp.js} +122 -7
- package/dist/core/ReflectivePlane-UIT4xlmn.js +230 -0
- package/dist/core/{VideoTexture-D9XxE1Hw.js → VideoTexture-ClutlOqj.js} +1 -1
- package/dist/core/{WebcamTexture-9Td8qQWm.js → WebcamTexture-D4e06ajM.js} +1 -1
- package/dist/core/index.js +42 -41
- package/dist/core/registry.js +42 -41
- package/dist/core/{shaderRegistry-BoqhBfun.js → shaderRegistry-DZDkRCt8.js} +79 -77
- package/dist/core/shaderRegistry.d.ts.map +1 -1
- package/dist/core/shaders/FloatingParticles/index.d.ts +1 -1
- package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
- package/dist/core/shaders/FloatingParticles/index.js +1 -1
- package/dist/core/shaders/ReflectivePlane/index.d.ts +46 -0
- package/dist/core/shaders/ReflectivePlane/index.d.ts.map +1 -0
- package/dist/core/shaders/ReflectivePlane/index.js +6 -0
- package/dist/core/shaders/Ring/index.js +1 -1
- package/dist/core/shaders/Ripples/index.js +1 -1
- package/dist/core/shaders/RoundedRect/index.js +1 -1
- package/dist/core/shaders/Saturation/index.js +1 -1
- package/dist/core/shaders/Sharpness/index.js +1 -1
- package/dist/core/shaders/Shatter/index.js +1 -1
- package/dist/core/shaders/SimplexNoise/index.js +1 -1
- package/dist/core/shaders/SineWave/index.js +1 -1
- package/dist/core/shaders/Smoke/index.js +1 -1
- package/dist/core/shaders/SmokeFill/index.js +1 -1
- package/dist/core/shaders/Solarize/index.js +1 -1
- package/dist/core/shaders/SolidColor/index.js +1 -1
- package/dist/core/shaders/Spherize/index.js +1 -1
- package/dist/core/shaders/Spiral/index.js +1 -1
- package/dist/core/shaders/Star/index.js +1 -1
- package/dist/core/shaders/Strands/index.js +1 -1
- package/dist/core/shaders/Stretch/index.js +1 -1
- package/dist/core/shaders/Stripes/index.js +1 -1
- package/dist/core/shaders/StudioBackground/index.js +1 -1
- package/dist/core/shaders/SunBurst/index.js +1 -1
- package/dist/core/shaders/Swirl/index.js +1 -1
- package/dist/core/shaders/TiltShift/index.js +1 -1
- package/dist/core/shaders/Tint/index.js +1 -1
- package/dist/core/shaders/Trapezoid/index.js +1 -1
- package/dist/core/shaders/Tritone/index.js +1 -1
- package/dist/core/shaders/Truchet/index.js +1 -1
- package/dist/core/shaders/Twirl/index.js +1 -1
- package/dist/core/shaders/VHS/index.js +1 -1
- package/dist/core/shaders/Vesica/index.js +1 -1
- package/dist/core/shaders/Vibrance/index.js +1 -1
- package/dist/core/shaders/VideoTexture/index.js +2 -2
- package/dist/core/shaders/Vignette/index.js +1 -1
- package/dist/core/shaders/Voronoi/index.js +1 -1
- package/dist/core/shaders/WaveDistortion/index.js +1 -1
- package/dist/core/shaders/Weave/index.js +1 -1
- package/dist/core/shaders/WebcamTexture/index.js +2 -2
- package/dist/core/shaders/WorleyNoise/index.js +1 -1
- package/dist/core/shaders/ZoomBlur/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 +12 -1
- package/dist/react/Preview.js +1 -0
- package/dist/react/ReflectivePlane.js +217 -0
- package/dist/react/Shader.js +1 -1
- package/dist/react/bundle.js +207 -207
- package/dist/react/components/ReflectivePlane.d.ts +36 -0
- package/dist/react/components/ReflectivePlane.d.ts.map +1 -0
- package/dist/react/engine/Preview.d.ts.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +2 -1
- package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/react/utils/generatePresetCode.js +12 -1
- package/dist/registry.js +219 -2
- package/dist/solid/components/ReflectivePlane.d.ts +33 -0
- package/dist/solid/components/ReflectivePlane.d.ts.map +1 -0
- package/dist/solid/components/ReflectivePlane.js +228 -0
- package/dist/solid/engine/Preview.d.ts.map +1 -1
- package/dist/solid/engine/Preview.js +158 -156
- package/dist/solid/engine/Shader.js +1 -1
- package/dist/solid/index.d.ts +1 -0
- package/dist/solid/index.d.ts.map +1 -1
- package/dist/solid/index.js +82 -80
- package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/solid/utils/generatePresetCode.js +12 -1
- package/dist/svelte/components/ReflectivePlane.svelte.d.ts +23 -0
- package/dist/svelte/index.d.ts +1 -0
- package/dist/svelte/index.js +740 -540
- package/dist/svelte/source/components/ReflectivePlane.svelte +329 -0
- package/dist/svelte/source/engine/Preview.svelte +2 -0
- package/dist/svelte/source/index.js +1 -0
- package/dist/svelte/utils/generatePresetCode.js +12 -1
- package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/vue/ReflectivePlane.js +3 -0
- package/dist/vue/ReflectivePlane.vue_vue_type_script_setup_true_lang.js +218 -0
- package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/vue/components/ReflectivePlane.vue.d.ts +58 -0
- package/dist/vue/components/ReflectivePlane.vue.d.ts.map +1 -0
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/index.js +2 -1
- package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
- package/dist/vue/utils/generatePresetCode.js +12 -1
- package/package.json +9 -1
- /package/dist/core/{Ring-CtnDtTY8.js → Ring-UT__kmzY.js} +0 -0
- /package/dist/core/{Ripples-B4H0VoZb.js → Ripples-CWVLSUP0.js} +0 -0
- /package/dist/core/{RoundedRect-tnt7Jr5b.js → RoundedRect-BPWHTT1j.js} +0 -0
- /package/dist/core/{Saturation-6FlxHXSi.js → Saturation-DFOp2yD9.js} +0 -0
- /package/dist/core/{Sharpness-C4cJlBuh.js → Sharpness-C-IEswPL.js} +0 -0
- /package/dist/core/{Shatter-CnkycTRD.js → Shatter-CUYQp-qy.js} +0 -0
- /package/dist/core/{SimplexNoise-BnRaoxON.js → SimplexNoise-LAxWw8fJ.js} +0 -0
- /package/dist/core/{SineWave-CZ4Fanvr.js → SineWave-CEQWxC9Q.js} +0 -0
- /package/dist/core/{Smoke-CXPjGG-b.js → Smoke-DO4yylWk.js} +0 -0
- /package/dist/core/{SmokeFill-DzEtYeKN.js → SmokeFill-Dm0sZS5F.js} +0 -0
- /package/dist/core/{Solarize-CynVlxjT.js → Solarize-mE7LU1li.js} +0 -0
- /package/dist/core/{SolidColor-dCAOGC_P.js → SolidColor-BljkSdvg.js} +0 -0
- /package/dist/core/{Spherize-C77QGVWj.js → Spherize-DARagREe.js} +0 -0
- /package/dist/core/{Spiral-eN65wa6O.js → Spiral-CumsIpkp.js} +0 -0
- /package/dist/core/{Star-0Flymgm9.js → Star-8fAlzR9L.js} +0 -0
- /package/dist/core/{Strands-DnWJDGiO.js → Strands-BB4RIsFz.js} +0 -0
- /package/dist/core/{Stretch-B5XGF1bF.js → Stretch-3S2atBkJ.js} +0 -0
- /package/dist/core/{Stripes-CNXJpFyr.js → Stripes-BGFVSZIt.js} +0 -0
- /package/dist/core/{StudioBackground-DtiE2mCf.js → StudioBackground-BtJ6b1Ki.js} +0 -0
- /package/dist/core/{SunBurst-D9X1-buZ.js → SunBurst-BJRFFYhs.js} +0 -0
- /package/dist/core/{Swirl-BV6pN94G.js → Swirl-KA9cEnLI.js} +0 -0
- /package/dist/core/{TiltShift-r4qzPb2k.js → TiltShift-DtQ3dRL-.js} +0 -0
- /package/dist/core/{Tint-CJ8FQdzA.js → Tint-W_EvzN1-.js} +0 -0
- /package/dist/core/{Trapezoid-JmybJMUr.js → Trapezoid-cQzS6-bh.js} +0 -0
- /package/dist/core/{Tritone-D_QvxjGc.js → Tritone-B3hI2nAi.js} +0 -0
- /package/dist/core/{Truchet-BJeZS_JQ.js → Truchet-s9PmowCP.js} +0 -0
- /package/dist/core/{Twirl-8ayqS0n8.js → Twirl-UDDXGkFl.js} +0 -0
- /package/dist/core/{VHS-Gbec95K_.js → VHS-DW1H7Wuy.js} +0 -0
- /package/dist/core/{Vesica-D7iqgpJg.js → Vesica-ChQBYWuw.js} +0 -0
- /package/dist/core/{Vibrance-COKHmh8r.js → Vibrance-DUj7hwzE.js} +0 -0
- /package/dist/core/{Vignette-Y_2yono-.js → Vignette-F9yxi-UM.js} +0 -0
- /package/dist/core/{Voronoi-DQ_f6k5D.js → Voronoi-D8HHP_WR.js} +0 -0
- /package/dist/core/{WaveDistortion-R5FfwKQN.js → WaveDistortion-CDIc5Uyk.js} +0 -0
- /package/dist/core/{Weave-DJ4s3Gwc.js → Weave-ou5shgl3.js} +0 -0
- /package/dist/core/{WorleyNoise-CWytDfGH.js → WorleyNoise-Uf6IPm7A.js} +0 -0
- /package/dist/core/{ZoomBlur-DWFQVFMK.js → ZoomBlur-DJ-RNKHM.js} +0 -0
- /package/dist/core/{browser-BamVDhaZ.js → browser-NUM-x2tw.js} +0 -0
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { a as transformColor } from "./transformations-CJcUeZIC.js";
|
|
2
2
|
import { t as createAnimatedTime } from "./time-DUqSFWvT.js";
|
|
3
|
-
import {
|
|
3
|
+
import { StorageTexture } from "three/webgpu";
|
|
4
|
+
import { FloatType } from "three";
|
|
5
|
+
import { Fn, cos, dot, float, floor, fract, instanceIndex, length, min, mix, screenUV, sin, smoothstep, storageTexture, texture, textureStore, time, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from "three/tsl";
|
|
6
|
+
var PARTICLE_TEX = 1024;
|
|
4
7
|
var hash1_2 = Fn(([p]) => {
|
|
5
|
-
|
|
8
|
+
const p3 = fract(vec3(p.x, p.y, p.x).mul(.1031));
|
|
9
|
+
const d = dot(p3, vec3(p3.y, p3.z, p3.x).add(33.33));
|
|
10
|
+
const p3b = p3.add(d);
|
|
11
|
+
return fract(p3b.x.add(p3b.y).mul(p3b.z));
|
|
6
12
|
});
|
|
7
13
|
var hash2_2 = Fn(([p]) => {
|
|
8
|
-
|
|
14
|
+
const p3 = fract(vec3(p.x, p.y, p.x).mul(vec3(.1031, .103, .0973)));
|
|
15
|
+
const d = dot(p3, vec3(p3.y, p3.z, p3.x).add(33.33));
|
|
16
|
+
const p3b = p3.add(d);
|
|
17
|
+
const s = p3b.x.add(p3b.y);
|
|
18
|
+
return fract(vec2(s.mul(p3b.z), s.mul(p3b.y)));
|
|
9
19
|
});
|
|
10
20
|
var voronoiPointFromRoot = Fn(([root, deg]) => {
|
|
11
21
|
const point = hash2_2(root).sub(.5);
|
|
@@ -20,6 +30,13 @@ var getParticleDistance = Fn(([uv$1, cellUV, randomness]) => {
|
|
|
20
30
|
const pointUV = voronoiPointFromRoot(cellUV, degFromRootUV(cellUV, randomness));
|
|
21
31
|
return length(uv$1.sub(pointUV));
|
|
22
32
|
});
|
|
33
|
+
var degFromRootUV_compute = Fn(([uv$1, randomness, frameTimeU]) => {
|
|
34
|
+
return frameTimeU.mul(randomness).mul(hash1_2(uv$1).sub(.5)).mul(2);
|
|
35
|
+
});
|
|
36
|
+
var getParticleDistance_compute = Fn(([uv$1, cellUV, randomness, frameTimeU]) => {
|
|
37
|
+
const pointUV = voronoiPointFromRoot(cellUV, degFromRootUV_compute(cellUV, randomness, frameTimeU));
|
|
38
|
+
return length(uv$1.sub(pointUV));
|
|
39
|
+
});
|
|
23
40
|
const componentDefinition = {
|
|
24
41
|
name: "FloatingParticles",
|
|
25
42
|
category: "Textures",
|
|
@@ -63,7 +80,7 @@ const componentDefinition = {
|
|
|
63
80
|
}
|
|
64
81
|
},
|
|
65
82
|
particleSize: {
|
|
66
|
-
default:
|
|
83
|
+
default: 2,
|
|
67
84
|
description: "Size of particles",
|
|
68
85
|
ui: {
|
|
69
86
|
type: ["range", "map"],
|
|
@@ -157,8 +174,106 @@ const componentDefinition = {
|
|
|
157
174
|
}
|
|
158
175
|
}
|
|
159
176
|
},
|
|
177
|
+
computeNode: (params) => {
|
|
178
|
+
const { uniforms, onCleanup } = params;
|
|
179
|
+
const texSize = PARTICLE_TEX;
|
|
180
|
+
const count = texSize * texSize;
|
|
181
|
+
const gs = uint(texSize);
|
|
182
|
+
const outTex = new StorageTexture(texSize, texSize);
|
|
183
|
+
outTex.type = FloatType;
|
|
184
|
+
const outTexNode = storageTexture(outTex);
|
|
185
|
+
onCleanup(() => outTex.dispose());
|
|
186
|
+
const animTimeU = uniform(0);
|
|
187
|
+
const frameTimeU = uniform(0);
|
|
188
|
+
const aspectU = uniform(16 / 9);
|
|
189
|
+
const computeRenderParticle = Fn(([uv$1]) => {
|
|
190
|
+
const rootUV = floor(uv$1);
|
|
191
|
+
const randomness = uniforms.randomness.uniform;
|
|
192
|
+
const dCenter = getParticleDistance_compute(uv$1, rootUV, randomness, frameTimeU);
|
|
193
|
+
const dLeft = getParticleDistance_compute(uv$1, rootUV.add(vec2(-1, 0)), randomness, frameTimeU);
|
|
194
|
+
const dRight = getParticleDistance_compute(uv$1, rootUV.add(vec2(1, 0)), randomness, frameTimeU);
|
|
195
|
+
const dTop = getParticleDistance_compute(uv$1, rootUV.add(vec2(0, -1)), randomness, frameTimeU);
|
|
196
|
+
const dBottom = getParticleDistance_compute(uv$1, rootUV.add(vec2(0, 1)), randomness, frameTimeU);
|
|
197
|
+
const minDist = min(min(min(min(dCenter, dLeft), dRight), dTop), dBottom);
|
|
198
|
+
const softness = uniforms.particleSoftness.uniform;
|
|
199
|
+
const scaledSize = uniforms.particleSize.uniform.mul(.01);
|
|
200
|
+
const innerRadius = scaledSize.mul(.6);
|
|
201
|
+
const baseIntensity = smoothstep(innerRadius, innerRadius.add(softness.mul(scaledSize.mul(2.4))), minDist).oneMinus();
|
|
202
|
+
const twinkleIntensity = uniforms.twinkle.uniform;
|
|
203
|
+
const particlePhase = hash1_2(rootUV);
|
|
204
|
+
const twinkleValue = sin(frameTimeU.mul(2).add(particlePhase.mul(6.28318))).mul(.5).add(.5);
|
|
205
|
+
const twinkleModifier = mix(float(1), twinkleValue, twinkleIntensity);
|
|
206
|
+
return baseIntensity.mul(twinkleModifier).mul(uniforms.particleColor.uniform.rgb);
|
|
207
|
+
});
|
|
208
|
+
const computeLayeredParticles = Fn(([uv$1]) => {
|
|
209
|
+
const sizeMod = float(1.05);
|
|
210
|
+
const alphaMod = float(.9);
|
|
211
|
+
const layers = uniforms.count.uniform;
|
|
212
|
+
const particles = vec3(0).toVar();
|
|
213
|
+
const layerScale = float(1).toVar();
|
|
214
|
+
const alpha = float(1).toVar();
|
|
215
|
+
const offset = vec2(0).toVar();
|
|
216
|
+
const angleRad = uniforms.angle.uniform.mul(3.14159).div(180);
|
|
217
|
+
const baseMovementDir = vec2(cos(angleRad), sin(angleRad));
|
|
218
|
+
const baseMovement = animTimeU.mul(baseMovementDir);
|
|
219
|
+
const speedVar = uniforms.speedVariance.uniform;
|
|
220
|
+
const angleVar = uniforms.angleVariance.uniform.mul(3.14159).div(180);
|
|
221
|
+
for (let i = 0; i < 5; i++) {
|
|
222
|
+
const layerActive = float(i).lessThan(layers).and(alpha.greaterThan(.02));
|
|
223
|
+
const layerHash = hash2_2(vec2(alpha, float(i).mul(7.919)));
|
|
224
|
+
const speedMod = float(1).add(layerHash.x.sub(.5).mul(speedVar));
|
|
225
|
+
const angleDelta = layerHash.y.sub(.5).mul(angleVar).mul(2);
|
|
226
|
+
const variedAngle = angleRad.add(angleDelta).toVar();
|
|
227
|
+
const variedDir = vec2(cos(variedAngle), sin(variedAngle));
|
|
228
|
+
const movement = baseMovement.mul(speedMod).add(variedDir.sub(baseMovementDir).mul(animTimeU));
|
|
229
|
+
const layerParticles = computeRenderParticle(uv$1.mul(layerScale).add(movement).add(offset)).mul(alpha);
|
|
230
|
+
particles.assign(particles.add(layerActive.select(layerParticles, vec3(0))));
|
|
231
|
+
offset.assign(offset.add(layerHash.mul(10)));
|
|
232
|
+
alpha.assign(alpha.mul(alphaMod));
|
|
233
|
+
layerScale.assign(layerScale.mul(sizeMod));
|
|
234
|
+
}
|
|
235
|
+
return particles;
|
|
236
|
+
});
|
|
237
|
+
const particlePass = Fn(() => {
|
|
238
|
+
const idx = instanceIndex;
|
|
239
|
+
const j = idx.mod(gs);
|
|
240
|
+
const i = idx.div(gs);
|
|
241
|
+
const u = j.toFloat().add(.5).div(float(texSize));
|
|
242
|
+
const v = i.toFloat().add(.5).div(float(texSize));
|
|
243
|
+
const particles = computeLayeredParticles(vec2(u.mul(2).sub(1).mul(aspectU), v.mul(2).sub(1)).mul(uniforms.particleDensity.uniform));
|
|
244
|
+
const pa = length(particles).clamp(0, 1);
|
|
245
|
+
textureStore(outTexNode, uvec2(j, i), vec4(particles, pa)).toWriteOnly();
|
|
246
|
+
})().compute(count, [256]);
|
|
247
|
+
return {
|
|
248
|
+
outputs: { particleTexture: outTex },
|
|
249
|
+
getComputeNodes: (frameParams) => {
|
|
250
|
+
animTimeU.value += frameParams.deltaTime * uniforms.speed.uniform.value;
|
|
251
|
+
frameTimeU.value += frameParams.deltaTime;
|
|
252
|
+
if (frameParams.dimensions.height > 0) aspectU.value = frameParams.dimensions.width / frameParams.dimensions.height;
|
|
253
|
+
return [particlePass];
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
},
|
|
160
257
|
fragmentNode: (params) => {
|
|
161
|
-
const { uniforms, childNode } = params;
|
|
258
|
+
const { uniforms, childNode, computeOutputs } = params;
|
|
259
|
+
if (computeOutputs?.particleTexture) {
|
|
260
|
+
const particleField = texture(computeOutputs.particleTexture);
|
|
261
|
+
const px = float(1 / PARTICLE_TEX);
|
|
262
|
+
const s0 = particleField.sample(screenUV);
|
|
263
|
+
const s1 = particleField.sample(screenUV.add(vec2(px, float(0))));
|
|
264
|
+
const s2 = particleField.sample(screenUV.add(vec2(float(0), px)));
|
|
265
|
+
const s3 = particleField.sample(screenUV.add(vec2(px.negate(), float(0))));
|
|
266
|
+
const s4 = particleField.sample(screenUV.add(vec2(float(0), px.negate())));
|
|
267
|
+
const w0 = float(.5), w1 = float(.125);
|
|
268
|
+
const particles$1 = s0.xyz.mul(w0).add(s1.xyz.mul(w1)).add(s2.xyz.mul(w1)).add(s3.xyz.mul(w1)).add(s4.xyz.mul(w1));
|
|
269
|
+
const particleAlpha$1 = s0.w.mul(w0).add(s1.w.mul(w1)).add(s2.w.mul(w1)).add(s3.w.mul(w1)).add(s4.w.mul(w1));
|
|
270
|
+
if (childNode) {
|
|
271
|
+
const mixedColor = mix(childNode.xyz, particles$1, particleAlpha$1.greaterThan(.01).select(particleAlpha$1, 0));
|
|
272
|
+
const pa = particleAlpha$1.clamp(0, 1);
|
|
273
|
+
return vec4(mixedColor, pa.add(childNode.w.mul(float(1).sub(pa))));
|
|
274
|
+
}
|
|
275
|
+
return vec4(particles$1, particleAlpha$1);
|
|
276
|
+
}
|
|
162
277
|
const baseUV = screenUV;
|
|
163
278
|
const animTime = createAnimatedTime(params, uniforms.speed);
|
|
164
279
|
const renderParticle = Fn(([uv$2]) => {
|
|
@@ -175,7 +290,7 @@ const componentDefinition = {
|
|
|
175
290
|
const innerRadius = scaledSize.mul(.6);
|
|
176
291
|
const baseIntensity = smoothstep(innerRadius, innerRadius.add(softness.mul(scaledSize.mul(2.4))), minDist).oneMinus();
|
|
177
292
|
const twinkleIntensity = uniforms.twinkle.uniform;
|
|
178
|
-
const particlePhase =
|
|
293
|
+
const particlePhase = hash1_2(rootUV);
|
|
179
294
|
const twinkleValue = sin(time.mul(2).add(particlePhase.mul(6.28318))).mul(.5).add(.5);
|
|
180
295
|
const twinkleModifier = mix(float(1), twinkleValue, twinkleIntensity);
|
|
181
296
|
return baseIntensity.mul(twinkleModifier).mul(uniforms.particleColor.uniform.rgb);
|
|
@@ -193,7 +308,7 @@ const componentDefinition = {
|
|
|
193
308
|
const baseMovement = animTime.mul(baseMovementDir);
|
|
194
309
|
const speedVar = uniforms.speedVariance.uniform;
|
|
195
310
|
const angleVar = uniforms.angleVariance.uniform.mul(3.14159).div(180);
|
|
196
|
-
for (let i = 0; i <
|
|
311
|
+
for (let i = 0; i < 5; i++) {
|
|
197
312
|
const layerActive = float(i).lessThan(layers).and(alpha.greaterThan(.02));
|
|
198
313
|
const layerHash = hash2_2(vec2(alpha, float(i).mul(7.919)));
|
|
199
314
|
const speedMod = float(1).add(layerHash.x.sub(.5).mul(speedVar));
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { t as applyEdgeHandling } from "./edges-CX_lJB9R.js";
|
|
2
|
+
import { c as transformEdges } from "./transformations-CJcUeZIC.js";
|
|
3
|
+
import { t as unpremultiplyAlpha } from "./alpha-C4ptedXe.js";
|
|
4
|
+
import { i as createVariableGaussianBlurCompute } from "./computeBlur-CprKe0xa.js";
|
|
5
|
+
import { Fn, If, convertToTexture, float, instanceIndex, mix, screenUV, smoothstep, step, texture, textureStore, uint, uniform, uvec2, vec2, vec4, viewportSize } from "three/tsl";
|
|
6
|
+
var HALF_KERNEL = 30;
|
|
7
|
+
var BLUR_TO_RADIUS_PX = 12;
|
|
8
|
+
var POISSON_DISK = [
|
|
9
|
+
[0, 0],
|
|
10
|
+
[-.94, -.34],
|
|
11
|
+
[.95, .31],
|
|
12
|
+
[-.09, -.93],
|
|
13
|
+
[.34, .94],
|
|
14
|
+
[-.91, .41],
|
|
15
|
+
[.88, -.46],
|
|
16
|
+
[-.4, .71],
|
|
17
|
+
[.51, .58],
|
|
18
|
+
[-.49, -.59],
|
|
19
|
+
[.4, -.68],
|
|
20
|
+
[-.71, .05],
|
|
21
|
+
[.07, .21]
|
|
22
|
+
];
|
|
23
|
+
var POISSON_WEIGHT = 1 / POISSON_DISK.length;
|
|
24
|
+
const componentDefinition = {
|
|
25
|
+
name: "ReflectivePlane",
|
|
26
|
+
category: "Stylize",
|
|
27
|
+
description: "Reflective floor that mirrors the content above it",
|
|
28
|
+
requiresRTT: true,
|
|
29
|
+
requiresChild: true,
|
|
30
|
+
props: {
|
|
31
|
+
height: {
|
|
32
|
+
default: .7,
|
|
33
|
+
description: "Vertical position of the reflective surface",
|
|
34
|
+
ui: {
|
|
35
|
+
type: ["range", "map"],
|
|
36
|
+
min: 0,
|
|
37
|
+
max: 1,
|
|
38
|
+
step: .01,
|
|
39
|
+
label: "Floor Height",
|
|
40
|
+
group: "Plane"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
distance: {
|
|
44
|
+
default: .5,
|
|
45
|
+
description: "How far below the floor the reflection remains visible before fully fading to transparent.",
|
|
46
|
+
ui: {
|
|
47
|
+
type: ["range", "map"],
|
|
48
|
+
min: .01,
|
|
49
|
+
max: 1,
|
|
50
|
+
step: .01,
|
|
51
|
+
label: "Reflection Distance",
|
|
52
|
+
group: "Plane"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
falloff: {
|
|
56
|
+
default: .5,
|
|
57
|
+
description: "Width of the fade zone, as a fraction of reflection distance.",
|
|
58
|
+
ui: {
|
|
59
|
+
type: ["range", "map"],
|
|
60
|
+
min: 0,
|
|
61
|
+
max: 3,
|
|
62
|
+
step: .01,
|
|
63
|
+
label: "Reflection Falloff",
|
|
64
|
+
group: "Plane"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
blur: {
|
|
68
|
+
default: 3,
|
|
69
|
+
description: "Maximum blur applied to the reflection far from the surface.",
|
|
70
|
+
ui: {
|
|
71
|
+
type: ["range", "map"],
|
|
72
|
+
min: 0,
|
|
73
|
+
max: 5,
|
|
74
|
+
step: .05,
|
|
75
|
+
label: "Blur",
|
|
76
|
+
group: "Surface"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
blurDistance: {
|
|
80
|
+
default: .3,
|
|
81
|
+
description: "How far below the surface the blur takes to ramp from sharp to maximum.",
|
|
82
|
+
ui: {
|
|
83
|
+
type: "range",
|
|
84
|
+
min: .01,
|
|
85
|
+
max: 1,
|
|
86
|
+
step: .01,
|
|
87
|
+
label: "Blur Distance",
|
|
88
|
+
group: "Surface"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
edges: {
|
|
92
|
+
default: "stretch",
|
|
93
|
+
description: "How to handle reflected samples that fall outside the source content.",
|
|
94
|
+
transform: transformEdges,
|
|
95
|
+
compileTime: true,
|
|
96
|
+
ui: {
|
|
97
|
+
type: "select",
|
|
98
|
+
options: [
|
|
99
|
+
{
|
|
100
|
+
label: "Stretch",
|
|
101
|
+
value: "stretch"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
label: "Transparent",
|
|
105
|
+
value: "transparent"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
label: "Mirror",
|
|
109
|
+
value: "mirror"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
label: "Wrap",
|
|
113
|
+
value: "wrap"
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
label: "Edges",
|
|
117
|
+
group: "Surface"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
computeNode: ({ childNode, onCleanup, dimensions, renderer, uniforms, onResize }) => {
|
|
122
|
+
if (!childNode) return null;
|
|
123
|
+
if (uniforms.height.mapComputeInfo || uniforms.blur.mapComputeInfo || uniforms.blurDistance.mapComputeInfo) return null;
|
|
124
|
+
const childTexture = convertToTexture(childNode);
|
|
125
|
+
onCleanup(() => {
|
|
126
|
+
if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
|
|
127
|
+
});
|
|
128
|
+
const dpr = renderer?.getPixelRatio?.() ?? 1;
|
|
129
|
+
const blur = createVariableGaussianBlurCompute(childTexture, Math.round(dimensions.width * dpr), Math.round(dimensions.height * dpr), onCleanup, HALF_KERNEL);
|
|
130
|
+
const { computeNodes: blurNodes, outputTexture, blurMapWriteNode, computeWidth, computeHeight } = blur;
|
|
131
|
+
const heightU = uniform(.5);
|
|
132
|
+
const blurAmountU = uniform(1);
|
|
133
|
+
const blurDistanceU = uniform(.5);
|
|
134
|
+
const cw = uint(computeWidth);
|
|
135
|
+
const ch = uint(computeHeight);
|
|
136
|
+
function readScalar(entry) {
|
|
137
|
+
return entry.getCpuValue?.() ?? (typeof entry.uniform.value === "number" ? entry.uniform.value : null);
|
|
138
|
+
}
|
|
139
|
+
function updateUniforms() {
|
|
140
|
+
const h = readScalar(uniforms.height);
|
|
141
|
+
if (h !== null) heightU.value = h;
|
|
142
|
+
const b = readScalar(uniforms.blur);
|
|
143
|
+
if (b !== null) blurAmountU.value = b;
|
|
144
|
+
const bd = readScalar(uniforms.blurDistance);
|
|
145
|
+
if (bd !== null) blurDistanceU.value = Math.max(.01, bd);
|
|
146
|
+
}
|
|
147
|
+
const fillBlurMap = Fn(() => {
|
|
148
|
+
const idx = instanceIndex;
|
|
149
|
+
const cx = idx.mod(cw);
|
|
150
|
+
const cy = idx.div(cw);
|
|
151
|
+
If(cy.lessThan(ch), () => {
|
|
152
|
+
const v = cy.toFloat().add(float(.5)).div(float(computeHeight));
|
|
153
|
+
const distBelowAtOutput = heightU.sub(v).max(float(0));
|
|
154
|
+
const ramp = smoothstep(float(0), blurDistanceU, distBelowAtOutput);
|
|
155
|
+
const radius = blurAmountU.mul(ramp).mul(float(BLUR_TO_RADIUS_PX));
|
|
156
|
+
textureStore(blurMapWriteNode, uvec2(cx, cy), vec4(radius, float(0), float(0), float(1))).toWriteOnly();
|
|
157
|
+
});
|
|
158
|
+
})().compute(computeWidth * computeHeight, [256]);
|
|
159
|
+
onResize(({ width, height }) => {
|
|
160
|
+
blur.setInputDimensions(Math.round(width * dpr), Math.round(height * dpr));
|
|
161
|
+
});
|
|
162
|
+
return {
|
|
163
|
+
outputs: {
|
|
164
|
+
childTexture,
|
|
165
|
+
blurredTexture: outputTexture
|
|
166
|
+
},
|
|
167
|
+
getComputeNodes: () => {
|
|
168
|
+
updateUniforms();
|
|
169
|
+
return [fillBlurMap, ...blurNodes];
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
},
|
|
173
|
+
fragmentNode: ({ uniforms, childNode, onCleanup, computeOutputs }) => {
|
|
174
|
+
if (!childNode) return vec4(0, 0, 0, 0);
|
|
175
|
+
if (computeOutputs?.blurredTexture && computeOutputs?.childTexture) {
|
|
176
|
+
const sharp = computeOutputs.childTexture;
|
|
177
|
+
const blurred = texture(computeOutputs.blurredTexture);
|
|
178
|
+
return Fn(() => {
|
|
179
|
+
const floorY = uniforms.height.uniform;
|
|
180
|
+
const uv$1 = screenUV;
|
|
181
|
+
const distBelow = uv$1.y.sub(floorY).max(float(0));
|
|
182
|
+
const originalSample = sharp.sample(uv$1);
|
|
183
|
+
const reflectedUV = vec2(uv$1.x, floorY.mul(2).sub(uv$1.y));
|
|
184
|
+
const reflSample = applyEdgeHandling(reflectedUV, blurred.sample(reflectedUV), blurred, uniforms.edges.uniform.value);
|
|
185
|
+
const distanceMax = uniforms.distance.uniform.max(float(.001));
|
|
186
|
+
const fadeWidth = distanceMax.mul(uniforms.falloff.uniform).max(float(1e-4));
|
|
187
|
+
const fadeStart = distanceMax.sub(fadeWidth);
|
|
188
|
+
const visibility = float(1).sub(smoothstep(fadeStart, distanceMax, distBelow));
|
|
189
|
+
const effReflA = reflSample.a.mul(visibility);
|
|
190
|
+
const reflPremultRgb = reflSample.rgb.mul(visibility);
|
|
191
|
+
const propsPin = uniforms.height.uniform.mul(float(0)).add(uniforms.blur.uniform.mul(float(0))).add(uniforms.blurDistance.uniform.mul(float(0)));
|
|
192
|
+
const oneMinusReflA = effReflA.oneMinus();
|
|
193
|
+
return unpremultiplyAlpha(mix(originalSample, vec4(reflPremultRgb.add(originalSample.rgb.mul(oneMinusReflA)).add(propsPin), effReflA.add(originalSample.a.mul(oneMinusReflA))), step(floorY, uv$1.y)));
|
|
194
|
+
})();
|
|
195
|
+
}
|
|
196
|
+
const childTexture = convertToTexture(childNode);
|
|
197
|
+
onCleanup(() => {
|
|
198
|
+
if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
|
|
199
|
+
});
|
|
200
|
+
return Fn(() => {
|
|
201
|
+
const floorY = uniforms.height.uniform;
|
|
202
|
+
const uv$1 = screenUV;
|
|
203
|
+
const aspect = viewportSize.x.div(viewportSize.y);
|
|
204
|
+
const distBelow = uv$1.y.sub(floorY).max(float(0));
|
|
205
|
+
const originalSample = childTexture.sample(uv$1);
|
|
206
|
+
const reflectedUV = vec2(uv$1.x, floorY.mul(2).sub(uv$1.y));
|
|
207
|
+
const clampedBlurDistance = uniforms.blurDistance.uniform.max(float(.01));
|
|
208
|
+
const blurRamp = smoothstep(float(0), clampedBlurDistance, distBelow);
|
|
209
|
+
const blurRadius = uniforms.blur.uniform.mul(blurRamp).mul(.02);
|
|
210
|
+
const blurredColor = vec4(0).toVar();
|
|
211
|
+
for (let i = 0; i < POISSON_DISK.length; i++) {
|
|
212
|
+
const [ox, oy] = POISSON_DISK[i];
|
|
213
|
+
const offset = vec2(float(ox).mul(blurRadius).div(aspect), float(oy).mul(blurRadius));
|
|
214
|
+
const sampleUV = reflectedUV.add(offset);
|
|
215
|
+
const edgeHandled = applyEdgeHandling(sampleUV, childTexture.sample(sampleUV), childTexture, uniforms.edges.uniform.value);
|
|
216
|
+
blurredColor.assign(blurredColor.add(edgeHandled.mul(float(POISSON_WEIGHT))));
|
|
217
|
+
}
|
|
218
|
+
const distanceMax = uniforms.distance.uniform.max(float(.001));
|
|
219
|
+
const fadeWidth = distanceMax.mul(uniforms.falloff.uniform).max(float(1e-4));
|
|
220
|
+
const fadeStart = distanceMax.sub(fadeWidth);
|
|
221
|
+
const visibility = float(1).sub(smoothstep(fadeStart, distanceMax, distBelow));
|
|
222
|
+
const effReflA = blurredColor.a.mul(visibility);
|
|
223
|
+
const reflPremultRgb = blurredColor.rgb.mul(visibility);
|
|
224
|
+
const oneMinusReflA = effReflA.oneMinus();
|
|
225
|
+
return unpremultiplyAlpha(mix(originalSample, vec4(reflPremultRgb.add(originalSample.rgb.mul(oneMinusReflA)), effReflA.add(originalSample.a.mul(oneMinusReflA))), step(floorY, uv$1.y)));
|
|
226
|
+
})();
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
var ReflectivePlane_default = componentDefinition;
|
|
230
|
+
export { componentDefinition as n, ReflectivePlane_default as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as needsVideoCanvasWorkaround } from "./browser-
|
|
1
|
+
import { t as needsVideoCanvasWorkaround } from "./browser-NUM-x2tw.js";
|
|
2
2
|
import { CanvasTexture, SRGBColorSpace, VideoTexture } from "three/webgpu";
|
|
3
3
|
import { float, max, min, or, screenUV, select, texture, uniform, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as needsVideoCanvasWorkaround } from "./browser-
|
|
1
|
+
import { t as needsVideoCanvasWorkaround } from "./browser-NUM-x2tw.js";
|
|
2
2
|
import { CanvasTexture, SRGBColorSpace, VideoTexture } from "three/webgpu";
|
|
3
3
|
import { float, max, min, or, screenUV, select, texture, uniform, vec2, vec4, viewportSize } from "three/tsl";
|
|
4
4
|
const componentDefinition = {
|
package/dist/core/index.js
CHANGED
|
@@ -42,7 +42,7 @@ import "./Ellipse-sWhNvW9-.js";
|
|
|
42
42
|
import "./Emboss-DGaubb9x.js";
|
|
43
43
|
import "./FallingLines-DqIZ8wTH.js";
|
|
44
44
|
import "./FilmGrain-Dbw02Jz9.js";
|
|
45
|
-
import "./FloatingParticles-
|
|
45
|
+
import "./FloatingParticles-LMsFTJKp.js";
|
|
46
46
|
import "./Flower-BbRNrXIa.js";
|
|
47
47
|
import "./FlowField-D3CAHBBG.js";
|
|
48
48
|
import "./FlowingGradient-BRQ_K-k3.js";
|
|
@@ -83,46 +83,47 @@ import "./Posterize-DNxTRgvF.js";
|
|
|
83
83
|
import "./ProgressiveBlur-BJwJ5mE0.js";
|
|
84
84
|
import "./RadialGradient-CQIctl__.js";
|
|
85
85
|
import "./RectangularCoordinates-F2VzXmal.js";
|
|
86
|
-
import "./
|
|
87
|
-
import "./
|
|
88
|
-
import "./
|
|
89
|
-
import "./
|
|
90
|
-
import "./
|
|
91
|
-
import "./
|
|
92
|
-
import "./
|
|
93
|
-
import "./
|
|
94
|
-
import "./
|
|
95
|
-
import "./
|
|
96
|
-
import "./
|
|
97
|
-
import "./
|
|
98
|
-
import "./
|
|
99
|
-
import "./
|
|
100
|
-
import "./
|
|
101
|
-
import "./
|
|
102
|
-
import "./
|
|
103
|
-
import "./
|
|
104
|
-
import "./
|
|
105
|
-
import "./
|
|
106
|
-
import "./
|
|
107
|
-
import "./
|
|
108
|
-
import "./
|
|
109
|
-
import "./
|
|
110
|
-
import "./
|
|
111
|
-
import "./
|
|
112
|
-
import "./
|
|
113
|
-
import "./
|
|
114
|
-
import "./
|
|
115
|
-
import "./
|
|
116
|
-
import "./
|
|
117
|
-
import "./
|
|
118
|
-
import "./
|
|
119
|
-
import "./
|
|
120
|
-
import "./
|
|
121
|
-
import "./
|
|
122
|
-
import "./
|
|
123
|
-
import "./
|
|
124
|
-
import "./
|
|
125
|
-
import
|
|
86
|
+
import "./ReflectivePlane-UIT4xlmn.js";
|
|
87
|
+
import "./Ring-UT__kmzY.js";
|
|
88
|
+
import "./Ripples-CWVLSUP0.js";
|
|
89
|
+
import "./RoundedRect-BPWHTT1j.js";
|
|
90
|
+
import "./Saturation-DFOp2yD9.js";
|
|
91
|
+
import "./Sharpness-C-IEswPL.js";
|
|
92
|
+
import "./Shatter-CUYQp-qy.js";
|
|
93
|
+
import "./SimplexNoise-LAxWw8fJ.js";
|
|
94
|
+
import "./SineWave-CEQWxC9Q.js";
|
|
95
|
+
import "./Smoke-DO4yylWk.js";
|
|
96
|
+
import "./SmokeFill-Dm0sZS5F.js";
|
|
97
|
+
import "./Solarize-mE7LU1li.js";
|
|
98
|
+
import "./SolidColor-BljkSdvg.js";
|
|
99
|
+
import "./Spherize-DARagREe.js";
|
|
100
|
+
import "./Spiral-CumsIpkp.js";
|
|
101
|
+
import "./Star-8fAlzR9L.js";
|
|
102
|
+
import "./Strands-BB4RIsFz.js";
|
|
103
|
+
import "./Stretch-3S2atBkJ.js";
|
|
104
|
+
import "./Stripes-BGFVSZIt.js";
|
|
105
|
+
import "./StudioBackground-BtJ6b1Ki.js";
|
|
106
|
+
import "./SunBurst-BJRFFYhs.js";
|
|
107
|
+
import "./Swirl-KA9cEnLI.js";
|
|
108
|
+
import "./TiltShift-DtQ3dRL-.js";
|
|
109
|
+
import "./Tint-W_EvzN1-.js";
|
|
110
|
+
import "./Trapezoid-cQzS6-bh.js";
|
|
111
|
+
import "./Tritone-B3hI2nAi.js";
|
|
112
|
+
import "./Truchet-s9PmowCP.js";
|
|
113
|
+
import "./Twirl-UDDXGkFl.js";
|
|
114
|
+
import "./Vesica-ChQBYWuw.js";
|
|
115
|
+
import "./VHS-DW1H7Wuy.js";
|
|
116
|
+
import "./Vibrance-DUj7hwzE.js";
|
|
117
|
+
import "./browser-NUM-x2tw.js";
|
|
118
|
+
import "./VideoTexture-ClutlOqj.js";
|
|
119
|
+
import "./Vignette-F9yxi-UM.js";
|
|
120
|
+
import "./Voronoi-D8HHP_WR.js";
|
|
121
|
+
import "./WaveDistortion-CDIc5Uyk.js";
|
|
122
|
+
import "./Weave-ou5shgl3.js";
|
|
123
|
+
import "./WebcamTexture-D4e06ajM.js";
|
|
124
|
+
import "./WorleyNoise-Uf6IPm7A.js";
|
|
125
|
+
import "./ZoomBlur-DJ-RNKHM.js";
|
|
126
|
+
import { t as getAllShaders } from "./shaderRegistry-DZDkRCt8.js";
|
|
126
127
|
import { Material, Mesh, MeshBasicNodeMaterial, OrthographicCamera, PlaneGeometry, SRGBColorSpace, Scene, Vector2, WebGPURenderer } from "three/webgpu";
|
|
127
128
|
import { WebGLRenderer } from "three";
|
|
128
129
|
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
|
@@ -42,7 +42,7 @@ import "./Ellipse-sWhNvW9-.js";
|
|
|
42
42
|
import "./Emboss-DGaubb9x.js";
|
|
43
43
|
import "./FallingLines-DqIZ8wTH.js";
|
|
44
44
|
import "./FilmGrain-Dbw02Jz9.js";
|
|
45
|
-
import "./FloatingParticles-
|
|
45
|
+
import "./FloatingParticles-LMsFTJKp.js";
|
|
46
46
|
import "./Flower-BbRNrXIa.js";
|
|
47
47
|
import "./FlowField-D3CAHBBG.js";
|
|
48
48
|
import "./FlowingGradient-BRQ_K-k3.js";
|
|
@@ -83,44 +83,45 @@ import "./Posterize-DNxTRgvF.js";
|
|
|
83
83
|
import "./ProgressiveBlur-BJwJ5mE0.js";
|
|
84
84
|
import "./RadialGradient-CQIctl__.js";
|
|
85
85
|
import "./RectangularCoordinates-F2VzXmal.js";
|
|
86
|
-
import "./
|
|
87
|
-
import "./
|
|
88
|
-
import "./
|
|
89
|
-
import "./
|
|
90
|
-
import "./
|
|
91
|
-
import "./
|
|
92
|
-
import "./
|
|
93
|
-
import "./
|
|
94
|
-
import "./
|
|
95
|
-
import "./
|
|
96
|
-
import "./
|
|
97
|
-
import "./
|
|
98
|
-
import "./
|
|
99
|
-
import "./
|
|
100
|
-
import "./
|
|
101
|
-
import "./
|
|
102
|
-
import "./
|
|
103
|
-
import "./
|
|
104
|
-
import "./
|
|
105
|
-
import "./
|
|
106
|
-
import "./
|
|
107
|
-
import "./
|
|
108
|
-
import "./
|
|
109
|
-
import "./
|
|
110
|
-
import "./
|
|
111
|
-
import "./
|
|
112
|
-
import "./
|
|
113
|
-
import "./
|
|
114
|
-
import "./
|
|
115
|
-
import "./
|
|
116
|
-
import "./
|
|
117
|
-
import "./
|
|
118
|
-
import "./
|
|
119
|
-
import "./
|
|
120
|
-
import "./
|
|
121
|
-
import "./
|
|
122
|
-
import "./
|
|
123
|
-
import "./
|
|
124
|
-
import "./
|
|
125
|
-
import
|
|
86
|
+
import "./ReflectivePlane-UIT4xlmn.js";
|
|
87
|
+
import "./Ring-UT__kmzY.js";
|
|
88
|
+
import "./Ripples-CWVLSUP0.js";
|
|
89
|
+
import "./RoundedRect-BPWHTT1j.js";
|
|
90
|
+
import "./Saturation-DFOp2yD9.js";
|
|
91
|
+
import "./Sharpness-C-IEswPL.js";
|
|
92
|
+
import "./Shatter-CUYQp-qy.js";
|
|
93
|
+
import "./SimplexNoise-LAxWw8fJ.js";
|
|
94
|
+
import "./SineWave-CEQWxC9Q.js";
|
|
95
|
+
import "./Smoke-DO4yylWk.js";
|
|
96
|
+
import "./SmokeFill-Dm0sZS5F.js";
|
|
97
|
+
import "./Solarize-mE7LU1li.js";
|
|
98
|
+
import "./SolidColor-BljkSdvg.js";
|
|
99
|
+
import "./Spherize-DARagREe.js";
|
|
100
|
+
import "./Spiral-CumsIpkp.js";
|
|
101
|
+
import "./Star-8fAlzR9L.js";
|
|
102
|
+
import "./Strands-BB4RIsFz.js";
|
|
103
|
+
import "./Stretch-3S2atBkJ.js";
|
|
104
|
+
import "./Stripes-BGFVSZIt.js";
|
|
105
|
+
import "./StudioBackground-BtJ6b1Ki.js";
|
|
106
|
+
import "./SunBurst-BJRFFYhs.js";
|
|
107
|
+
import "./Swirl-KA9cEnLI.js";
|
|
108
|
+
import "./TiltShift-DtQ3dRL-.js";
|
|
109
|
+
import "./Tint-W_EvzN1-.js";
|
|
110
|
+
import "./Trapezoid-cQzS6-bh.js";
|
|
111
|
+
import "./Tritone-B3hI2nAi.js";
|
|
112
|
+
import "./Truchet-s9PmowCP.js";
|
|
113
|
+
import "./Twirl-UDDXGkFl.js";
|
|
114
|
+
import "./Vesica-ChQBYWuw.js";
|
|
115
|
+
import "./VHS-DW1H7Wuy.js";
|
|
116
|
+
import "./Vibrance-DUj7hwzE.js";
|
|
117
|
+
import "./browser-NUM-x2tw.js";
|
|
118
|
+
import "./VideoTexture-ClutlOqj.js";
|
|
119
|
+
import "./Vignette-F9yxi-UM.js";
|
|
120
|
+
import "./Voronoi-D8HHP_WR.js";
|
|
121
|
+
import "./WaveDistortion-CDIc5Uyk.js";
|
|
122
|
+
import "./Weave-ou5shgl3.js";
|
|
123
|
+
import "./WebcamTexture-D4e06ajM.js";
|
|
124
|
+
import "./WorleyNoise-Uf6IPm7A.js";
|
|
125
|
+
import "./ZoomBlur-DJ-RNKHM.js";
|
|
126
|
+
import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-DZDkRCt8.js";
|
|
126
127
|
export { getAllShaders, getShaderByName, getShaderCategories, getShadersByCategory, shaderRegistry };
|