shaders 2.5.99 → 2.5.101

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.
@@ -0,0 +1,60 @@
1
+ import { clamp, dot, float, floor, fract, pow, screenUV, sin, uniform, vec2, vec3, vec4, viewportSize } from "three/tsl";
2
+ const componentDefinition = {
3
+ name: "FilmGrain",
4
+ category: "Stylize",
5
+ description: "Analog film grain texture overlay, weighted toward darker areas",
6
+ requiresChild: true,
7
+ props: {
8
+ strength: {
9
+ default: .5,
10
+ description: "Intensity of the film grain noise",
11
+ ui: {
12
+ type: ["range", "map"],
13
+ min: 0,
14
+ max: 1,
15
+ step: .025,
16
+ label: "Strength",
17
+ group: "Effect"
18
+ }
19
+ },
20
+ bias: {
21
+ default: 2,
22
+ description: "Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly.",
23
+ ui: {
24
+ type: "range",
25
+ min: 0,
26
+ max: 10,
27
+ step: .1,
28
+ label: "Bias",
29
+ group: "Effect"
30
+ }
31
+ },
32
+ animated: {
33
+ default: false,
34
+ description: "When enabled, the grain pattern changes each frame for a dynamic film effect",
35
+ ui: {
36
+ type: "checkbox",
37
+ label: "Animated",
38
+ group: "Effect"
39
+ },
40
+ transform: (value) => value ? 1 : 0
41
+ }
42
+ },
43
+ fragmentNode: ({ uniforms, childNode, onBeforeRender }) => {
44
+ const strength = uniforms.strength.uniform;
45
+ const bias = uniforms.bias.uniform;
46
+ const animated = uniforms.animated.uniform;
47
+ const sourceColor = childNode || vec4(0, 0, 0, 0);
48
+ const animTime = uniform(0);
49
+ onBeforeRender(({ deltaTime }) => {
50
+ animTime.value += deltaTime * animated.value * 10;
51
+ });
52
+ const grain = fract(sin(dot(floor(screenUV.mul(viewportSize)), vec2(1, 157)).add(animTime)).mul(float(43758.5453))).mul(float(2)).sub(float(1));
53
+ const brightness = clamp(dot(sourceColor.rgb, vec3(.299, .587, .114)), 0, 1);
54
+ const darkFactor = pow(float(1).sub(brightness).add(float(1e-6)), bias);
55
+ const grainIntensity = grain.mul(darkFactor).mul(strength.mul(float(.1)));
56
+ return vec4(sourceColor.rgb.add(grainIntensity), sourceColor.a);
57
+ }
58
+ };
59
+ var FilmGrain_default = componentDefinition;
60
+ export { componentDefinition as n, FilmGrain_default as t };
@@ -37,7 +37,7 @@ import "./Duotone-Bl02WcA2.js";
37
37
  import "./Ellipse-CXxGqTYI.js";
38
38
  import "./Emboss-ClQV27Mt.js";
39
39
  import "./FallingLines-CArEXajJ.js";
40
- import "./FilmGrain-Ph73aoC_.js";
40
+ import "./FilmGrain-yBeLmqwl.js";
41
41
  import "./FloatingParticles-BtwGRl_d.js";
42
42
  import "./Flower-MAwlZEv8.js";
43
43
  import "./FlowField-RyqiRxyI.js";
@@ -109,7 +109,7 @@ import "./WaveDistortion-BKma8-Ju.js";
109
109
  import "./Weave-xuu_vQ5e.js";
110
110
  import "./WebcamTexture-Cf8J7JB1.js";
111
111
  import "./ZoomBlur-UcS2iFT2.js";
112
- import { t as getAllShaders } from "./shaderRegistry-C1F3flnY.js";
112
+ import { t as getAllShaders } from "./shaderRegistry-X16MNgs8.js";
113
113
  import { Material, Mesh, MeshBasicNodeMaterial, OrthographicCamera, PlaneGeometry, SRGBColorSpace, Scene, Vector2, WebGPURenderer } from "three/webgpu";
114
114
  import { WebGLRenderer } from "three";
115
115
  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";
@@ -37,7 +37,7 @@ import "./Duotone-Bl02WcA2.js";
37
37
  import "./Ellipse-CXxGqTYI.js";
38
38
  import "./Emboss-ClQV27Mt.js";
39
39
  import "./FallingLines-CArEXajJ.js";
40
- import "./FilmGrain-Ph73aoC_.js";
40
+ import "./FilmGrain-yBeLmqwl.js";
41
41
  import "./FloatingParticles-BtwGRl_d.js";
42
42
  import "./Flower-MAwlZEv8.js";
43
43
  import "./FlowField-RyqiRxyI.js";
@@ -109,5 +109,5 @@ import "./WaveDistortion-BKma8-Ju.js";
109
109
  import "./Weave-xuu_vQ5e.js";
110
110
  import "./WebcamTexture-Cf8J7JB1.js";
111
111
  import "./ZoomBlur-UcS2iFT2.js";
112
- import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-C1F3flnY.js";
112
+ import { a as shaderRegistry, i as getShadersByCategory, n as getShaderByName, r as getShaderCategories, t as getAllShaders } from "./shaderRegistry-X16MNgs8.js";
113
113
  export { getAllShaders, getShaderByName, getShaderCategories, getShadersByCategory, shaderRegistry };
@@ -30,7 +30,7 @@ import { n as componentDefinition$28 } from "./Duotone-Bl02WcA2.js";
30
30
  import { n as componentDefinition$29 } from "./Ellipse-CXxGqTYI.js";
31
31
  import { n as componentDefinition$30 } from "./Emboss-ClQV27Mt.js";
32
32
  import { n as componentDefinition$31 } from "./FallingLines-CArEXajJ.js";
33
- import { n as componentDefinition$32 } from "./FilmGrain-Ph73aoC_.js";
33
+ import { n as componentDefinition$32 } from "./FilmGrain-yBeLmqwl.js";
34
34
  import { n as componentDefinition$33 } from "./FloatingParticles-BtwGRl_d.js";
35
35
  import { n as componentDefinition$34 } from "./Flower-MAwlZEv8.js";
36
36
  import { n as componentDefinition$35 } from "./FlowField-RyqiRxyI.js";
@@ -7,6 +7,20 @@ export interface ComponentProps {
7
7
  * @default 0.5
8
8
  */
9
9
  strength: number;
10
+ /**
11
+ * Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly.
12
+ *
13
+ * Accepts a number between 0 and 10.
14
+ * @default 2
15
+ */
16
+ bias: number;
17
+ /**
18
+ * When enabled, the grain pattern changes each frame for a dynamic film effect
19
+ *
20
+ * Accepts a boolean value (`true` or `false`).
21
+ * @default false
22
+ */
23
+ animated: boolean;
10
24
  }
11
25
  export declare const componentDefinition: ComponentDefinition<ComponentProps>;
12
26
  export default componentDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shaders/FilmGrain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AAIvE,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;CACnB;AAED,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,cAAc,CAmCnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shaders/FilmGrain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAqB,MAAM,iBAAiB,CAAA;AAIvE,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,cAAc,CA4DnE,CAAA;AAED,eAAe,mBAAmB,CAAA"}
@@ -1,2 +1,2 @@
1
- import { n as componentDefinition, t as FilmGrain_default } from "../../FilmGrain-Ph73aoC_.js";
1
+ import { n as componentDefinition, t as FilmGrain_default } from "../../FilmGrain-yBeLmqwl.js";
2
2
  export { componentDefinition, FilmGrain_default as default };
@@ -46,7 +46,7 @@ async function createShader(canvas, preset, options) {
46
46
  if (isExternalUser()) {
47
47
  const checkRendering = () => {
48
48
  if (renderer.getPerformanceStats().fps > 0) {
49
- telemetryCollector = startTelemetry(renderer, "2.5.99", options?.disableTelemetry || false, false);
49
+ telemetryCollector = startTelemetry(renderer, "2.5.101", options?.disableTelemetry || false, false);
50
50
  if (telemetryCollector) telemetryCollector.start();
51
51
  telemetryStartTimeout = null;
52
52
  } 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;AAy3CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAoBlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
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;AA23CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAoBlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
@@ -408,7 +408,9 @@ var shaderMetadata = {
408
408
  "FilmGrain": {
409
409
  "opacity": 1,
410
410
  "blendMode": "normal",
411
- "strength": .5
411
+ "strength": .5,
412
+ "bias": 2,
413
+ "animated": false
412
414
  },
413
415
  "FloatingParticles": {
414
416
  "opacity": 1,
@@ -89,7 +89,7 @@ const Shader = ({ children, disableTelemetry = false, colorSpace = "p3-linear",
89
89
  return;
90
90
  }
91
91
  if (rendererRef.current.getPerformanceStats().fps > 0) {
92
- telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.99", disableTelemetry, isPreview);
92
+ telemetryCollectorRef.current = startTelemetry(rendererRef.current, "2.5.101", disableTelemetry, isPreview);
93
93
  if (telemetryCollectorRef.current) telemetryCollectorRef.current.start();
94
94
  telemetryStartTimeoutRef.current = null;
95
95
  } else telemetryStartTimeoutRef.current = window.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;AA44CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
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;AA84CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
@@ -420,7 +420,9 @@ var shaderMetadata = {
420
420
  "FilmGrain": {
421
421
  "opacity": 1,
422
422
  "blendMode": "normal",
423
- "strength": .5
423
+ "strength": .5,
424
+ "bias": 2,
425
+ "animated": false
424
426
  },
425
427
  "FloatingParticles": {
426
428
  "opacity": 1,
package/dist/registry.js CHANGED
@@ -7181,13 +7181,13 @@ export const shaderRegistry = [
7181
7181
  {
7182
7182
  "name": "FilmGrain",
7183
7183
  "category": "Stylize",
7184
- "description": "Analog film grain texture overlay",
7184
+ "description": "Analog film grain texture overlay, weighted toward darker areas",
7185
7185
  "fileName": "FilmGrain",
7186
7186
  "requiresChild": true,
7187
7187
  "definition": {
7188
7188
  "name": "FilmGrain",
7189
7189
  "category": "Stylize",
7190
- "description": "Analog film grain texture overlay",
7190
+ "description": "Analog film grain texture overlay, weighted toward darker areas",
7191
7191
  "requiresChild": true,
7192
7192
  "props": {
7193
7193
  "strength": {
@@ -7200,10 +7200,31 @@ export const shaderRegistry = [
7200
7200
  ],
7201
7201
  "min": 0,
7202
7202
  "max": 1,
7203
- "step": 0.1,
7203
+ "step": 0.025,
7204
7204
  "label": "Strength",
7205
7205
  "group": "Effect"
7206
7206
  }
7207
+ },
7208
+ "bias": {
7209
+ "default": 2,
7210
+ "description": "Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly.",
7211
+ "ui": {
7212
+ "type": "range",
7213
+ "min": 0,
7214
+ "max": 10,
7215
+ "step": 0.1,
7216
+ "label": "Bias",
7217
+ "group": "Effect"
7218
+ }
7219
+ },
7220
+ "animated": {
7221
+ "default": false,
7222
+ "description": "When enabled, the grain pattern changes each frame for a dynamic film effect",
7223
+ "ui": {
7224
+ "type": "checkbox",
7225
+ "label": "Animated",
7226
+ "group": "Effect"
7227
+ }
7207
7228
  }
7208
7229
  }
7209
7230
  },
@@ -7216,12 +7237,33 @@ export const shaderRegistry = [
7216
7237
  ],
7217
7238
  "min": 0,
7218
7239
  "max": 1,
7219
- "step": 0.1,
7240
+ "step": 0.025,
7220
7241
  "label": "Strength",
7221
7242
  "group": "Effect"
7222
7243
  },
7223
7244
  "default": 0.5,
7224
7245
  "description": "Intensity of the film grain noise"
7246
+ },
7247
+ "bias": {
7248
+ "ui": {
7249
+ "type": "range",
7250
+ "min": 0,
7251
+ "max": 10,
7252
+ "step": 0.1,
7253
+ "label": "Bias",
7254
+ "group": "Effect"
7255
+ },
7256
+ "default": 2,
7257
+ "description": "Concentrates grain in darker areas. Higher values focus grain more heavily on shadows; 0 applies grain uniformly."
7258
+ },
7259
+ "animated": {
7260
+ "ui": {
7261
+ "type": "checkbox",
7262
+ "label": "Animated",
7263
+ "group": "Effect"
7264
+ },
7265
+ "default": false,
7266
+ "description": "When enabled, the grain pattern changes each frame for a dynamic film effect"
7225
7267
  }
7226
7268
  }
7227
7269
  },
@@ -67,7 +67,7 @@ function Shader(allProps) {
67
67
  const checkRendering = () => {
68
68
  const stats = rendererInstance.getPerformanceStats();
69
69
  if (stats.fps > 0) {
70
- const version = "2.5.99";
70
+ const version = "2.5.101";
71
71
  telemetryCollector = startTelemetry(rendererInstance, version, props.disableTelemetry, props.isPreview);
72
72
  if (telemetryCollector) {
73
73
  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;AAm4CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
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;AAq4CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAiFlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
@@ -415,7 +415,9 @@ const shaderMetadata = {
415
415
  "FilmGrain": {
416
416
  "opacity": 1,
417
417
  "blendMode": "normal",
418
- "strength": 0.5
418
+ "strength": 0.5,
419
+ "bias": 2,
420
+ "animated": false
419
421
  },
420
422
  "FloatingParticles": {
421
423
  "opacity": 1,
@@ -413,7 +413,9 @@ var shaderMetadata = {
413
413
  "FilmGrain": {
414
414
  "opacity": 1,
415
415
  "blendMode": "normal",
416
- "strength": .5
416
+ "strength": .5,
417
+ "bias": 2,
418
+ "animated": false
417
419
  },
418
420
  "FloatingParticles": {
419
421
  "opacity": 1,
@@ -1,4 +1,4 @@
1
- import { n as generatePresetCode } from "./generatePresetCode-gaYD5uUH.js";
1
+ import { n as generatePresetCode } from "./generatePresetCode-Cdho2JhN.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";
@@ -20546,7 +20546,7 @@ function Shader($$anchor, $$props) {
20546
20546
  const checkRendering = () => {
20547
20547
  if (!rendererInstance) return;
20548
20548
  if (rendererInstance.getPerformanceStats().fps > 0) {
20549
- telemetryCollector = startTelemetry(rendererInstance, "2.5.99", disableTelemetry(), isPreview());
20549
+ telemetryCollector = startTelemetry(rendererInstance, "2.5.101", disableTelemetry(), isPreview());
20550
20550
  if (telemetryCollector) telemetryCollector.start();
20551
20551
  telemetryStartTimeout = null;
20552
20552
  } else telemetryStartTimeout = window.setTimeout(checkRendering, 500);
@@ -1,2 +1,2 @@
1
- import { n as generatePresetCode, t as availableComponents } from "../generatePresetCode-gaYD5uUH.js";
1
+ import { n as generatePresetCode, t as availableComponents } from "../generatePresetCode-Cdho2JhN.js";
2
2
  export { availableComponents, generatePresetCode };
@@ -15,7 +15,9 @@ var FilmGrain_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defi
15
15
  maskSource: {},
16
16
  maskType: {},
17
17
  renderOrder: {},
18
- transform: {}
18
+ transform: {},
19
+ bias: {},
20
+ animated: { type: Boolean }
19
21
  }, {
20
22
  blendMode: "normal",
21
23
  visible: true,
@@ -60,7 +60,7 @@ var Shader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
60
60
  const startTelemetryWhenReady = () => {
61
61
  const checkRendering = () => {
62
62
  if (rendererInstance.value.getPerformanceStats().fps > 0) {
63
- telemetryCollector = startTelemetry(rendererInstance.value, "2.5.99", props.disableTelemetry, props.isPreview);
63
+ telemetryCollector = startTelemetry(rendererInstance.value, "2.5.101", props.disableTelemetry, props.isPreview);
64
64
  if (telemetryCollector) telemetryCollector.start();
65
65
  telemetryStartTimeout = null;
66
66
  } 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;AAk4CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4FlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
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;AAo4CD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CA4FlG;AAGD,eAAO,MAAM,mBAAmB,UAyG/B,CAAA"}
@@ -411,7 +411,9 @@ var shaderMetadata = {
411
411
  "FilmGrain": {
412
412
  "opacity": 1,
413
413
  "blendMode": "normal",
414
- "strength": .5
414
+ "strength": .5,
415
+ "bias": 2,
416
+ "animated": false
415
417
  },
416
418
  "FloatingParticles": {
417
419
  "opacity": 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shaders",
3
- "version": "2.5.99",
3
+ "version": "2.5.101",
4
4
  "description": "Shader magic for modern frontends",
5
5
  "author": "Shader Effects Inc.",
6
6
  "homepage": "https://shaders.com/",
@@ -1037,7 +1037,7 @@
1037
1037
  }
1038
1038
  },
1039
1039
  "dependencies": {
1040
- "three": "^0.183.0"
1040
+ "three": "^0.184.0"
1041
1041
  },
1042
1042
  "devDependencies": {
1043
1043
  "@types/fs-extra": "^11.0.4",
@@ -1,27 +0,0 @@
1
- import { dot, float, fract, screenUV, sin, vec2, vec4 } from "three/tsl";
2
- const componentDefinition = {
3
- name: "FilmGrain",
4
- category: "Stylize",
5
- description: "Analog film grain texture overlay",
6
- requiresChild: true,
7
- props: { strength: {
8
- default: .5,
9
- description: "Intensity of the film grain noise",
10
- ui: {
11
- type: ["range", "map"],
12
- min: 0,
13
- max: 1,
14
- step: .1,
15
- label: "Strength",
16
- group: "Effect"
17
- }
18
- } },
19
- fragmentNode: ({ uniforms, childNode }) => {
20
- const strength = uniforms.strength.uniform;
21
- const sourceColor = childNode || vec4(0, 0, 0, 0);
22
- const grainIntensity = fract(sin(dot(screenUV, vec2(float(12.9898), float(78.233)).mul(float(2)))).mul(float(43758.5453))).mul(float(2)).sub(float(1)).mul(strength.mul(float(.1)));
23
- return vec4(sourceColor.rgb.add(grainIntensity), sourceColor.a);
24
- }
25
- };
26
- var FilmGrain_default = componentDefinition;
27
- export { componentDefinition as n, FilmGrain_default as t };