shaders 2.2.26 → 2.2.27

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.
Files changed (168) hide show
  1. package/dist/core/{AngularBlur-Dl2gwk68.js → AngularBlur-DKFExWUF.js} +15 -16
  2. package/dist/core/{Ascii-DsuNLJKv.js → Ascii-BRApYlD4.js} +21 -22
  3. package/dist/core/{Beam-CTN9Ni43.js → Beam-DU7wxmIh.js} +23 -24
  4. package/dist/core/{Blob-CxFDZovO.js → Blob-nssNzEgN.js} +37 -38
  5. package/dist/core/{Blur-Y2FsmFk_.js → Blur-k37gOaRA.js} +16 -17
  6. package/dist/core/{Bulge-Cb-t0xqI.js → Bulge-Dm02_fG6.js} +23 -25
  7. package/dist/core/{CRTScreen-CtERsenz.js → CRTScreen-DLy8Rig6.js} +19 -20
  8. package/dist/core/ChannelBlur-BPOGOQXl.js +117 -0
  9. package/dist/core/{Checkerboard-BIFNsUYG.js → Checkerboard-SKsXoUXE.js} +10 -11
  10. package/dist/core/{ChromaFlow-vRCwhQpN.js → ChromaFlow-VpfgLFbs.js} +31 -32
  11. package/dist/core/{ChromaticAberration-FTquTQIL.js → ChromaticAberration-CaCyXMyE.js} +10 -11
  12. package/dist/core/{Circle-Daziv5d7.js → Circle-BHnAmzVb.js} +7 -8
  13. package/dist/core/{CursorTrail-Bsz9e6Fn.js → CursorTrail-CfVWIKok.js} +16 -17
  14. package/dist/core/{DiffuseBlur-Cj2PtRNd.js → DiffuseBlur-GWPb8Zht.js} +19 -21
  15. package/dist/core/{Dither-Cq8j0QIU.js → Dither-BNEeyo0u.js} +7 -8
  16. package/dist/core/{DotGrid-BHfQ3hcI.js → DotGrid-CRRS6nbt.js} +12 -13
  17. package/dist/core/{Duotone-XuTN9tI7.js → Duotone-5gKND3an.js} +8 -9
  18. package/dist/core/{FilmGrain-D3-nbi12.js → FilmGrain-osBGk_b9.js} +4 -5
  19. package/dist/core/{FloatingParticles-CP6GqC3k.js → FloatingParticles-CULOurGT.js} +41 -42
  20. package/dist/core/GlassTiles-CA90XrNT.js +67 -0
  21. package/dist/core/{Glow-BluFc9be.js → Glow-D0boDIAW.js} +12 -13
  22. package/dist/core/{Godrays-ChLh_vGl.js → Godrays-BQsDwU26.js} +27 -28
  23. package/dist/core/{Grid-DgyDa4H1.js → Grid-CWHxwO7R.js} +7 -8
  24. package/dist/core/{GridDistortion-BAspCYvp.js → GridDistortion-CZB9w-rv.js} +21 -22
  25. package/dist/core/{Group-Dul7PUBl.js → Group-C0AknFDS.js} +2 -3
  26. package/dist/core/{Halftone-Ifv5F_FT.js → Halftone-MMcLMRpL.js} +11 -12
  27. package/dist/core/{ImageTexture-DvYcQgJB.js → ImageTexture-D9OMwqAs.js} +26 -27
  28. package/dist/core/{Invert-Fz0NtIJc.js → Invert-Bmjbp6g6.js} +5 -6
  29. package/dist/core/{LinearBlur-LmhnQoA4.js → LinearBlur-B-Ikurxt.js} +12 -13
  30. package/dist/core/{LinearGradient-xbloQjzt.js → LinearGradient-DV6UkhZk.js} +21 -22
  31. package/dist/core/{Liquify-DMe1V5-O.js → Liquify-W8UQNeEM.js} +24 -26
  32. package/dist/core/{Pixelate-JF72DGuK.js → Pixelate-_pyYeLRP.js} +6 -8
  33. package/dist/core/{PolarCoordinates-DDvDhBE-.js → PolarCoordinates-D63xm0oJ.js} +15 -17
  34. package/dist/core/{ProgressiveBlur-EGkevObV.js → ProgressiveBlur-G-s-o9ic.js} +23 -24
  35. package/dist/core/{RadialGradient-B7ZZB_VJ.js → RadialGradient-BGVqSwh0.js} +6 -7
  36. package/dist/core/{RectangularCoordinates-muWR8mZS.js → RectangularCoordinates-DyHBo456.js} +19 -21
  37. package/dist/core/{Ripples-8XaZaXQF.js → Ripples-2FGWCZlp.js} +9 -10
  38. package/dist/core/{SimplexNoise-DJUe0wz_.js → SimplexNoise-B6dtUCmn.js} +4 -4
  39. package/dist/core/{SineWave-Dl3nFO1W.js → SineWave-BtPf6-2H.js} +11 -12
  40. package/dist/core/{SolidColor-CWGq_Bjq.js → SolidColor-CETl1cEr.js} +1 -1
  41. package/dist/core/{Spherize-C-jZEUsN.js → Spherize-BwvUcorJ.js} +24 -25
  42. package/dist/core/{Spiral-BSB_R39p.js → Spiral-DmJWmUmr.js} +16 -17
  43. package/dist/core/{Strands-0stO5BMy.js → Strands-CV1oCmHx.js} +31 -32
  44. package/dist/core/{Stretch-B645paha.js → Stretch-pl-Cn2F8.js} +23 -25
  45. package/dist/core/{Swirl-CVnbawit.js → Swirl-D65vXLDw.js} +15 -16
  46. package/dist/core/{TiltShift-0CxNRI6L.js → TiltShift-CFcK6Hzg.js} +22 -23
  47. package/dist/core/{Tritone-Daa-I5UD.js → Tritone-EmnjV2rX.js} +8 -9
  48. package/dist/core/{Twirl-2CJVZEtk.js → Twirl-HSMyRx5I.js} +18 -20
  49. package/dist/core/{WaveDistortion-BscXN2rs.js → WaveDistortion-DG8GO_l8.js} +31 -33
  50. package/dist/core/{ZoomBlur-CAqK0Kju.js → ZoomBlur-C01oGwwG.js} +12 -13
  51. package/dist/core/colorMixing-CZPFmiT4.js +68 -0
  52. package/dist/core/edges-Djr_12SL.js +25 -0
  53. package/dist/core/helpers/distort.d.ts.map +1 -1
  54. package/dist/core/helpers/edgeMask.d.ts.map +1 -1
  55. package/dist/core/helpers/glow.d.ts +3 -2
  56. package/dist/core/helpers/glow.d.ts.map +1 -1
  57. package/dist/core/helpers/grain.d.ts.map +1 -1
  58. package/dist/core/index.js +94 -102
  59. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  60. package/dist/core/shaders/AngularBlur/index.js +2 -2
  61. package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
  62. package/dist/core/shaders/Ascii/index.js +1 -1
  63. package/dist/core/shaders/Beam/index.d.ts.map +1 -1
  64. package/dist/core/shaders/Beam/index.js +3 -3
  65. package/dist/core/shaders/Blob/index.d.ts.map +1 -1
  66. package/dist/core/shaders/Blob/index.js +3 -3
  67. package/dist/core/shaders/Blur/index.d.ts.map +1 -1
  68. package/dist/core/shaders/Blur/index.js +1 -1
  69. package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
  70. package/dist/core/shaders/Bulge/index.js +3 -3
  71. package/dist/core/shaders/CRTScreen/index.d.ts.map +1 -1
  72. package/dist/core/shaders/CRTScreen/index.js +1 -1
  73. package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
  74. package/dist/core/shaders/ChannelBlur/index.js +1 -1
  75. package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
  76. package/dist/core/shaders/Checkerboard/index.js +3 -3
  77. package/dist/core/shaders/ChromaFlow/index.d.ts.map +1 -1
  78. package/dist/core/shaders/ChromaFlow/index.js +2 -2
  79. package/dist/core/shaders/ChromaticAberration/index.d.ts.map +1 -1
  80. package/dist/core/shaders/ChromaticAberration/index.js +2 -2
  81. package/dist/core/shaders/Circle/index.d.ts.map +1 -1
  82. package/dist/core/shaders/Circle/index.js +2 -2
  83. package/dist/core/shaders/CursorTrail/index.d.ts.map +1 -1
  84. package/dist/core/shaders/CursorTrail/index.js +3 -3
  85. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  86. package/dist/core/shaders/DiffuseBlur/index.js +3 -3
  87. package/dist/core/shaders/Dither/index.d.ts.map +1 -1
  88. package/dist/core/shaders/Dither/index.js +2 -2
  89. package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
  90. package/dist/core/shaders/DotGrid/index.js +2 -2
  91. package/dist/core/shaders/Duotone/index.d.ts.map +1 -1
  92. package/dist/core/shaders/Duotone/index.js +3 -3
  93. package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
  94. package/dist/core/shaders/FilmGrain/index.js +1 -1
  95. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  96. package/dist/core/shaders/FloatingParticles/index.js +2 -2
  97. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  98. package/dist/core/shaders/GlassTiles/index.js +1 -1
  99. package/dist/core/shaders/Glow/index.d.ts.map +1 -1
  100. package/dist/core/shaders/Glow/index.js +1 -1
  101. package/dist/core/shaders/Godrays/index.d.ts.map +1 -1
  102. package/dist/core/shaders/Godrays/index.js +2 -2
  103. package/dist/core/shaders/Grid/index.d.ts.map +1 -1
  104. package/dist/core/shaders/Grid/index.js +2 -2
  105. package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
  106. package/dist/core/shaders/GridDistortion/index.js +3 -3
  107. package/dist/core/shaders/Group/index.d.ts.map +1 -1
  108. package/dist/core/shaders/Group/index.js +1 -1
  109. package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
  110. package/dist/core/shaders/Halftone/index.js +2 -2
  111. package/dist/core/shaders/ImageTexture/index.d.ts.map +1 -1
  112. package/dist/core/shaders/ImageTexture/index.js +1 -1
  113. package/dist/core/shaders/Invert/index.d.ts.map +1 -1
  114. package/dist/core/shaders/Invert/index.js +1 -1
  115. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  116. package/dist/core/shaders/LinearBlur/index.js +2 -2
  117. package/dist/core/shaders/LinearGradient/index.d.ts.map +1 -1
  118. package/dist/core/shaders/LinearGradient/index.js +3 -3
  119. package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
  120. package/dist/core/shaders/Liquify/index.js +3 -3
  121. package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
  122. package/dist/core/shaders/Pixelate/index.js +1 -1
  123. package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
  124. package/dist/core/shaders/PolarCoordinates/index.js +3 -3
  125. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  126. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  127. package/dist/core/shaders/RadialGradient/index.d.ts.map +1 -1
  128. package/dist/core/shaders/RadialGradient/index.js +3 -3
  129. package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -1
  130. package/dist/core/shaders/RectangularCoordinates/index.js +3 -3
  131. package/dist/core/shaders/Ripples/index.d.ts.map +1 -1
  132. package/dist/core/shaders/Ripples/index.js +3 -3
  133. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  134. package/dist/core/shaders/SineWave/index.d.ts.map +1 -1
  135. package/dist/core/shaders/SineWave/index.js +2 -2
  136. package/dist/core/shaders/SolidColor/index.js +2 -2
  137. package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
  138. package/dist/core/shaders/Spherize/index.js +2 -2
  139. package/dist/core/shaders/Spiral/index.d.ts.map +1 -1
  140. package/dist/core/shaders/Spiral/index.js +3 -3
  141. package/dist/core/shaders/Strands/index.d.ts.map +1 -1
  142. package/dist/core/shaders/Strands/index.js +2 -2
  143. package/dist/core/shaders/Stretch/index.d.ts.map +1 -1
  144. package/dist/core/shaders/Stretch/index.js +3 -3
  145. package/dist/core/shaders/Swirl/index.d.ts.map +1 -1
  146. package/dist/core/shaders/Swirl/index.js +3 -3
  147. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  148. package/dist/core/shaders/TiltShift/index.js +2 -2
  149. package/dist/core/shaders/Tritone/index.d.ts.map +1 -1
  150. package/dist/core/shaders/Tritone/index.js +3 -3
  151. package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
  152. package/dist/core/shaders/Twirl/index.js +3 -3
  153. package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
  154. package/dist/core/shaders/WaveDistortion/index.js +3 -3
  155. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  156. package/dist/core/shaders/ZoomBlur/index.js +2 -2
  157. package/dist/core/{transformations-DxfQXZWi.js → transformations-Dv5JW9ck.js} +11 -12
  158. package/dist/core/utilities/colorMixing.d.ts.map +1 -1
  159. package/dist/core/utilities/edges.d.ts.map +1 -1
  160. package/dist/core/utilities/transformations.d.ts.map +1 -1
  161. package/dist/core/utilities/uniforms.d.ts.map +1 -1
  162. package/dist/core/utilities/uv.d.ts.map +1 -1
  163. package/dist/core/utilities/uvTransform.d.ts.map +1 -1
  164. package/package.json +1 -1
  165. package/dist/core/ChannelBlur-CvM6GJgZ.js +0 -118
  166. package/dist/core/GlassTiles-CXChgYaL.js +0 -69
  167. package/dist/core/colorMixing-BXiTAqJU.js +0 -69
  168. package/dist/core/edges-Bn_OIa_h.js +0 -26
@@ -0,0 +1,67 @@
1
+ import { add, convertToTexture, div, floor, mul, screenUV, select, sub, uniform, vec2, vec4 } from "three/tsl";
2
+ const componentDefinition = {
3
+ name: "GlassTiles",
4
+ category: "Distortions",
5
+ description: "Refraction-like distortion in a tile grid pattern",
6
+ requiresRTT: true,
7
+ requiresChild: true,
8
+ props: {
9
+ intensity: {
10
+ default: 1,
11
+ description: "The intensity of the glass tiles effect",
12
+ ui: {
13
+ type: "range",
14
+ min: 0,
15
+ max: 5,
16
+ step: .1,
17
+ label: "Intensity"
18
+ }
19
+ },
20
+ tileCount: {
21
+ default: 100,
22
+ description: "Number of tiles across the shortest dimension",
23
+ ui: {
24
+ type: "range",
25
+ min: 1,
26
+ max: 200,
27
+ step: 1,
28
+ label: "Tile Count"
29
+ }
30
+ }
31
+ },
32
+ uvTransformNode: ({ uv: uv$1, uniforms, viewportSize: viewportSize$1 }) => {
33
+ const intensity = uniforms.intensity.uniform;
34
+ const baseTileCount = uniforms.tileCount.uniform;
35
+ const aspectRatio = viewportSize$1.x.div(viewportSize$1.y);
36
+ const tileCount = vec2(select(aspectRatio.greaterThanEqual(1), baseTileCount.mul(aspectRatio), baseTileCount), select(aspectRatio.lessThan(1), baseTileCount.div(aspectRatio), baseTileCount));
37
+ const cellCoord = floor(uv$1.mul(tileCount)).div(tileCount);
38
+ const localUV = uv$1.sub(cellCoord);
39
+ const distortionCenter = vec2(.5, .5);
40
+ const distortionFactor = intensity.mul(.025);
41
+ const distortion = localUV.div(vec2(1, 1).div(tileCount)).sub(distortionCenter).mul(distortionFactor);
42
+ return localUV.add(distortion).add(cellCoord);
43
+ },
44
+ fragmentNode: ({ uniforms, childNode, dimensions, onCleanup }) => {
45
+ if (!childNode) {
46
+ console.error("You must pass a child component into the Glass Tiles shader.");
47
+ return vec4(0);
48
+ }
49
+ const texture$1 = convertToTexture(childNode);
50
+ onCleanup(() => {
51
+ if (texture$1?.renderTarget?.dispose) texture$1.renderTarget.dispose();
52
+ });
53
+ const aspectRatioUniform = uniform(dimensions.width / dimensions.height);
54
+ const uvNode = screenUV;
55
+ const intensity = uniforms.intensity.uniform;
56
+ const baseTileCount = uniforms.tileCount.uniform;
57
+ const tileCount = vec2(aspectRatioUniform.greaterThanEqual(1).select(mul(baseTileCount, aspectRatioUniform), baseTileCount), aspectRatioUniform.lessThan(1).select(div(baseTileCount, aspectRatioUniform), baseTileCount));
58
+ const cellCoord = div(floor(mul(uvNode, tileCount)), tileCount);
59
+ const localUV = sub(uvNode, cellCoord);
60
+ const distortionCenter = vec2(.5, .5);
61
+ const distortionFactor = mul(intensity, .025);
62
+ const finalUV = add(add(localUV, mul(sub(div(localUV, div(vec2(1), tileCount)), distortionCenter), distortionFactor)), cellCoord);
63
+ return vec4(texture$1.sample(finalUV));
64
+ }
65
+ };
66
+ var GlassTiles_default = componentDefinition;
67
+ export { componentDefinition as n, GlassTiles_default as t };
@@ -1,4 +1,4 @@
1
- import * as TSL from "three/tsl";
1
+ import { Fn, convertToTexture, dot, float, max, screenUV, vec2, vec3, vec4, viewportSize } from "three/tsl";
2
2
  const componentDefinition = {
3
3
  name: "Glow",
4
4
  category: "Stylize",
@@ -41,34 +41,33 @@ const componentDefinition = {
41
41
  }
42
42
  },
43
43
  fragmentNode: ({ uniforms, childNode, onCleanup }) => {
44
- const { vec2: vec2$1, vec3: vec3$1, vec4: vec4$1, float: float$1, max: max$1, dot: dot$1, screenUV: screenUV$1, convertToTexture: convertToTexture$1, viewportSize: viewportSize$1, Fn } = TSL;
45
- if (!childNode) return vec4$1(0, 0, 0, 0);
46
- const childTexture = convertToTexture$1(childNode);
44
+ if (!childNode) return vec4(0, 0, 0, 0);
45
+ const childTexture = convertToTexture(childNode);
47
46
  onCleanup(() => {
48
47
  if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
49
48
  });
50
- const originalColor = childTexture.sample(screenUV$1);
49
+ const originalColor = childTexture.sample(screenUV);
51
50
  const glowEffect = Fn(() => {
52
51
  const blurRadius = uniforms.size.uniform;
53
52
  const threshold = uniforms.threshold.uniform;
54
- const pixelSize = vec2$1(1).div(viewportSize$1);
55
- const blurredGlow = vec4$1(0, 0, 0, 0).toVar();
53
+ const pixelSize = vec2(1).div(viewportSize);
54
+ const blurredGlow = vec4(0, 0, 0, 0).toVar();
56
55
  const radius = 5;
57
56
  for (let dx = -radius; dx <= radius; dx++) for (let dy = -radius; dy <= radius; dy++) {
58
- const offset = vec2$1(float$1(dx), float$1(dy)).mul(pixelSize).mul(blurRadius);
59
- const sampleUV = screenUV$1.add(offset);
57
+ const offset = vec2(float(dx), float(dy)).mul(pixelSize).mul(blurRadius);
58
+ const sampleUV = screenUV.add(offset);
60
59
  const sampleColor = childTexture.sample(sampleUV);
61
- const luminance = dot$1(sampleColor.rgb, vec3$1(.299, .587, .114));
62
- const brightnessMask = max$1(float$1(0), luminance.sub(threshold));
60
+ const luminance = dot(sampleColor.rgb, vec3(.299, .587, .114));
61
+ const brightnessMask = max(float(0), luminance.sub(threshold));
63
62
  const brightColor = sampleColor.mul(brightnessMask);
64
63
  blurredGlow.assign(blurredGlow.add(brightColor));
65
64
  }
66
- const totalSamples = float$1((radius * 2 + 1) * (radius * 2 + 1));
65
+ const totalSamples = float((radius * 2 + 1) * (radius * 2 + 1));
67
66
  return blurredGlow.div(totalSamples);
68
67
  })();
69
68
  const intensity = uniforms.intensity.uniform;
70
69
  const intensifiedGlow = glowEffect.mul(intensity);
71
- return vec4$1(originalColor.rgb.add(intensifiedGlow.rgb), max$1(originalColor.a, intensifiedGlow.a));
70
+ return vec4(originalColor.rgb.add(intensifiedGlow.rgb), max(originalColor.a, intensifiedGlow.a));
72
71
  }
73
72
  };
74
73
  var Glow_default = componentDefinition;
@@ -1,5 +1,5 @@
1
- import { o as transformPosition, r as transformColor } from "./transformations-DxfQXZWi.js";
2
- import * as TSL from "three/tsl";
1
+ import { o as transformPosition, r as transformColor } from "./transformations-Dv5JW9ck.js";
2
+ import { Fn, PI, abs, atan, clamp, float, length, mix, pow, screenUV, sin, smoothstep, time, vec2, vec4 } from "three/tsl";
3
3
  const componentDefinition = {
4
4
  name: "Godrays",
5
5
  category: "Base Layers",
@@ -83,61 +83,60 @@ const componentDefinition = {
83
83
  }
84
84
  },
85
85
  fragmentNode: ({ uniforms, uvContext }) => {
86
- const { vec2: vec2$1, vec4: vec4$1, float: float$1, sin: sin$1, atan: atan$1, length, pow: pow$1, smoothstep, mix: mix$1, clamp: clamp$1, screenUV: screenUV$1, time, PI, Fn } = TSL;
87
- const uv = uvContext ?? screenUV$1;
88
- const centerPos = vec2$1(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());
89
- const shapeUV = uv.sub(centerPos);
86
+ const uv$1 = uvContext ?? screenUV;
87
+ const centerPos = vec2(uniforms.center.uniform.x, uniforms.center.uniform.y.oneMinus());
88
+ const shapeUV = uv$1.sub(centerPos);
90
89
  const valueNoise = Fn(([st]) => {
91
90
  const i = st.floor();
92
91
  const f = st.fract();
93
92
  const hash = (p) => {
94
- return sin$1(p.x.mul(127.1).add(p.y.mul(311.7))).mul(43758.5453).fract();
93
+ return sin(p.x.mul(127.1).add(p.y.mul(311.7))).mul(43758.5453).fract();
95
94
  };
96
95
  const a = hash(i);
97
- const b = hash(i.add(vec2$1(1, 0)));
98
- const c = hash(i.add(vec2$1(0, 1)));
99
- const d = hash(i.add(vec2$1(1, 1)));
96
+ const b = hash(i.add(vec2(1, 0)));
97
+ const c = hash(i.add(vec2(0, 1)));
98
+ const d = hash(i.add(vec2(1, 1)));
100
99
  const u = f.mul(f).mul(f.mul(-2).add(3));
101
- return mix$1(mix$1(a, b, u.x), mix$1(c, d, u.x), u.y);
100
+ return mix(mix(a, b, u.x), mix(c, d, u.x), u.y);
102
101
  });
103
- const raysShape = Fn(([uv$1, r, freq, intensity]) => {
104
- const a = atan$1(uv$1.y, uv$1.x);
105
- const left = vec2$1(a.mul(freq), r);
106
- const right = vec2$1(a.mod(PI.mul(2)).mul(freq), r);
107
- const nLeft = pow$1(valueNoise(left), intensity);
108
- return mix$1(pow$1(valueNoise(right), intensity), nLeft, smoothstep(-.15, .15, uv$1.x));
102
+ const raysShape = Fn(([uv$2, r, freq, intensity]) => {
103
+ const a = atan(uv$2.y, uv$2.x);
104
+ const left = vec2(a.mul(freq), r);
105
+ const right = vec2(a.mod(PI.mul(2)).mul(freq), r);
106
+ const nLeft = pow(valueNoise(left), intensity);
107
+ return mix(pow(valueNoise(right), intensity), nLeft, smoothstep(-.15, .15, uv$2.x));
109
108
  });
110
109
  const rayEffect = Fn(() => {
111
110
  const animTime = time.mul(uniforms.speed.uniform).mul(.2);
112
111
  const radius = length(shapeUV);
113
- const spots = float$1(6.5).mul(TSL.abs(uniforms.spotty.uniform));
114
- const intensityCalc = float$1(4).sub(float$1(3).mul(clamp$1(uniforms.intensity.uniform, 0, 1)));
115
- const density = float$1(6).mul(uniforms.density.uniform);
116
- const accumRay = float$1(0).toVar();
112
+ const spots = float(6.5).mul(abs(uniforms.spotty.uniform));
113
+ const intensityCalc = float(4).sub(float(3).mul(clamp(uniforms.intensity.uniform, 0, 1)));
114
+ const density = float(6).mul(uniforms.density.uniform);
115
+ const accumRay = float(0).toVar();
117
116
  const r1 = radius.mul(1).sub(animTime.mul(3));
118
- const r2 = radius.mul(.5).mul(float$1(1).add(spots)).sub(animTime.mul(2));
117
+ const r2 = radius.mul(.5).mul(float(1).add(spots)).sub(animTime.mul(2));
119
118
  const f1 = density.mul(5);
120
119
  const ray = raysShape(shapeUV, r1, f1, intensityCalc).toVar();
121
120
  ray.assign(ray.mul(raysShape(shapeUV, r2, f1.mul(4), intensityCalc)));
122
121
  accumRay.assign(accumRay.add(ray));
123
122
  const r3 = radius.mul(1.4).sub(animTime.mul(2.5));
124
- const r4 = radius.mul(.7).mul(float$1(1).add(spots)).sub(animTime.mul(1.8));
123
+ const r4 = radius.mul(.7).mul(float(1).add(spots)).sub(animTime.mul(1.8));
125
124
  const f2 = density.mul(4.5);
126
125
  const ray2 = raysShape(shapeUV, r3, f2, intensityCalc).toVar();
127
126
  ray2.assign(ray2.mul(raysShape(shapeUV, r4, f2.mul(3.5), intensityCalc)));
128
127
  accumRay.assign(accumRay.add(ray2.mul(.7)));
129
- return clamp$1(accumRay, 0, 1);
128
+ return clamp(accumRay, 0, 1);
130
129
  })();
131
130
  const rayColorRGB = uniforms.rayColor.uniform.rgb;
132
131
  const rayColorA = uniforms.rayColor.uniform.a;
133
132
  const bgColorRGB = uniforms.backgroundColor.uniform.rgb;
134
133
  const bgColorA = uniforms.backgroundColor.uniform.a;
135
134
  const rayAlpha = rayEffect.mul(rayColorA);
136
- const finalAlpha = rayAlpha.add(bgColorA.mul(float$1(1).sub(rayAlpha)));
137
- const safeAlpha = clamp$1(finalAlpha, .001, 1);
135
+ const finalAlpha = rayAlpha.add(bgColorA.mul(float(1).sub(rayAlpha)));
136
+ const safeAlpha = clamp(finalAlpha, .001, 1);
138
137
  const rayContribution = rayColorRGB.mul(rayAlpha);
139
- const bgContribution = bgColorRGB.mul(bgColorA).mul(float$1(1).sub(rayAlpha));
140
- return vec4$1(rayContribution.add(bgContribution).div(safeAlpha), finalAlpha);
138
+ const bgContribution = bgColorRGB.mul(bgColorA).mul(float(1).sub(rayAlpha));
139
+ return vec4(rayContribution.add(bgContribution).div(safeAlpha), finalAlpha);
141
140
  }
142
141
  };
143
142
  var Godrays_default = componentDefinition;
@@ -1,5 +1,5 @@
1
- import { r as transformColor } from "./transformations-DxfQXZWi.js";
2
- import * as TSL from "three/tsl";
1
+ import { r as transformColor } from "./transformations-Dv5JW9ck.js";
2
+ import { fract, fwidth, max, screenUV, smoothstep, vec2, vec4, viewportSize } from "three/tsl";
3
3
  const componentDefinition = {
4
4
  name: "Grid",
5
5
  category: "Base Layers",
@@ -39,10 +39,9 @@ const componentDefinition = {
39
39
  }
40
40
  },
41
41
  fragmentNode: ({ uniforms, uvContext }) => {
42
- const { vec2: vec2$1, vec4: vec4$1, fract, max: max$1, screenUV: screenUV$1, viewportSize: viewportSize$1, fwidth, smoothstep } = TSL;
43
- const uv = uvContext ?? screenUV$1;
44
- const aspect = viewportSize$1.x.div(viewportSize$1.y);
45
- const correctedUV = vec2$1(uv.x.mul(aspect), uv.y.oneMinus());
42
+ const uv$1 = uvContext ?? screenUV;
43
+ const aspect = viewportSize.x.div(viewportSize.y);
44
+ const correctedUV = vec2(uv$1.x.mul(aspect), uv$1.y.oneMinus());
46
45
  const cells = uniforms.cells.uniform;
47
46
  const gridUV = correctedUV.mul(cells);
48
47
  const gridFract = fract(gridUV);
@@ -50,8 +49,8 @@ const componentDefinition = {
50
49
  const distToLineX = gridFract.x.min(gridFract.x.oneMinus());
51
50
  const distToLineY = gridFract.y.min(gridFract.y.oneMinus());
52
51
  const pixelSize = fwidth(gridUV);
53
- const gridMask = max$1(smoothstep(lineWidth.add(pixelSize.x), lineWidth, distToLineX), smoothstep(lineWidth.add(pixelSize.y), lineWidth, distToLineY));
54
- return vec4$1(uniforms.color.uniform.rgb, uniforms.color.uniform.a.mul(gridMask));
52
+ const gridMask = max(smoothstep(lineWidth.add(pixelSize.x), lineWidth, distToLineX), smoothstep(lineWidth.add(pixelSize.y), lineWidth, distToLineY));
53
+ return vec4(uniforms.color.uniform.rgb, uniforms.color.uniform.a.mul(gridMask));
55
54
  }
56
55
  };
57
56
  var Grid_default = componentDefinition;
@@ -1,27 +1,27 @@
1
- import { t as applyEdgeHandling } from "./edges-Bn_OIa_h.js";
2
- import { a as transformEdges } from "./transformations-DxfQXZWi.js";
1
+ import { t as applyEdgeHandling } from "./edges-Djr_12SL.js";
2
+ import { a as transformEdges } from "./transformations-Dv5JW9ck.js";
3
3
  import { DataTexture, FloatType, LinearFilter, RGFormat } from "three";
4
- import * as TSL from "three/tsl";
4
+ import { convertToTexture, float, screenUV, texture, uniform, vec2, vec4 } from "three/tsl";
5
5
  var DEFAULT_GRID_SIZE = 20;
6
6
  var displacementStateCache = /* @__PURE__ */ new WeakMap();
7
7
  var getOrCreateDisplacementState = (uniforms) => {
8
8
  let state = displacementStateCache.get(uniforms);
9
9
  const gridSize = uniforms?.gridSize?.uniform?.value ? Math.max(8, Math.min(128, Math.floor(uniforms.gridSize.uniform.value))) : DEFAULT_GRID_SIZE;
10
10
  if (state && state.gridSize !== gridSize) {
11
- state.texture.dispose();
11
+ state.dataTexture.dispose();
12
12
  state = void 0;
13
13
  displacementStateCache.delete(uniforms);
14
14
  }
15
15
  if (!state) {
16
16
  const data = new Float32Array(gridSize * gridSize * 2);
17
- const texture = new DataTexture(data, gridSize, gridSize, RGFormat, FloatType);
18
- texture.magFilter = LinearFilter;
19
- texture.minFilter = LinearFilter;
20
- texture.needsUpdate = true;
17
+ const dataTexture = new DataTexture(data, gridSize, gridSize, RGFormat, FloatType);
18
+ dataTexture.magFilter = LinearFilter;
19
+ dataTexture.minFilter = LinearFilter;
20
+ dataTexture.needsUpdate = true;
21
21
  state = {
22
- texture,
22
+ dataTexture,
23
23
  data,
24
- tslNode: TSL.texture(texture),
24
+ tslNode: texture(dataTexture),
25
25
  gridSize
26
26
  };
27
27
  displacementStateCache.set(uniforms, state);
@@ -119,10 +119,9 @@ const componentDefinition = {
119
119
  }
120
120
  },
121
121
  fragmentNode: ({ uniforms, onBeforeRender, childNode, onCleanup }) => {
122
- const { vec2: vec2$1, vec4: vec4$1, float: float$1, uniform: uniform$1, screenUV: screenUV$1, convertToTexture: convertToTexture$1 } = TSL;
123
- const { texture: displacementTexture, data: displacementData, tslNode: displacementField, gridSize: GRID_SIZE } = getOrCreateDisplacementState(uniforms);
124
- const mouseVelX = uniform$1(0);
125
- const mouseVelY = uniform$1(0);
122
+ const { dataTexture: displacementTexture, data: displacementData, tslNode: displacementField, gridSize: GRID_SIZE } = getOrCreateDisplacementState(uniforms);
123
+ const mouseVelX = uniform(0);
124
+ const mouseVelY = uniform(0);
126
125
  let prevX = .5;
127
126
  let prevY = .5;
128
127
  let lastTime = Date.now();
@@ -168,19 +167,19 @@ const componentDefinition = {
168
167
  displacementTexture.dispose();
169
168
  displacementStateCache.delete(uniforms);
170
169
  });
171
- if (!childNode) return vec4$1(0, 0, 0, 0);
172
- const childTexture = convertToTexture$1(childNode);
170
+ if (!childNode) return vec4(0, 0, 0, 0);
171
+ const childTexture = convertToTexture(childNode);
173
172
  onCleanup(() => {
174
173
  if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
175
174
  });
176
175
  const gridSizeUniform = uniforms.gridSize.uniform;
177
- const gridScale = float$1(1).div(gridSizeUniform);
178
- const gridCellUV = screenUV$1.div(gridScale).floor().mul(gridScale).add(gridScale.mul(.5));
176
+ const gridScale = float(1).div(gridSizeUniform);
177
+ const gridCellUV = screenUV.div(gridScale).floor().mul(gridScale).add(gridScale.mul(.5));
179
178
  const displacement = displacementField.sample(gridCellUV).xy;
180
- const maxDisplacement = float$1(.1);
181
- const negMaxDisplacement = float$1(-.1);
182
- const clampedDisplacement = displacement.clamp(vec2$1(negMaxDisplacement, negMaxDisplacement), vec2$1(maxDisplacement, maxDisplacement));
183
- const distortedUV = screenUV$1.sub(clampedDisplacement);
179
+ const maxDisplacement = float(.1);
180
+ const negMaxDisplacement = float(-.1);
181
+ const clampedDisplacement = displacement.clamp(vec2(negMaxDisplacement, negMaxDisplacement), vec2(maxDisplacement, maxDisplacement));
182
+ const distortedUV = screenUV.sub(clampedDisplacement);
184
183
  return applyEdgeHandling(distortedUV, childTexture.sample(distortedUV), childTexture, uniforms.edges.uniform);
185
184
  }
186
185
  };
@@ -1,4 +1,4 @@
1
- import * as TSL from "three/tsl";
1
+ import { vec4 } from "three/tsl";
2
2
  const componentDefinition = {
3
3
  name: "Group",
4
4
  category: "Utilities",
@@ -6,8 +6,7 @@ const componentDefinition = {
6
6
  requiresChild: true,
7
7
  props: {},
8
8
  fragmentNode: ({ childNode }) => {
9
- const { vec4: vec4$1 } = TSL;
10
- return childNode || vec4$1(0);
9
+ return childNode || vec4(0);
11
10
  }
12
11
  };
13
12
  var Group_default = componentDefinition;
@@ -1,5 +1,5 @@
1
- import { n as transformAngle } from "./transformations-DxfQXZWi.js";
2
- import * as TSL from "three/tsl";
1
+ import { n as transformAngle } from "./transformations-Dv5JW9ck.js";
2
+ import { cos, dot, fract, length, radians, screenUV, sin, smoothstep, vec2, vec3, vec4, viewportSize } from "three/tsl";
3
3
  const componentDefinition = {
4
4
  name: "Halftone",
5
5
  category: "Stylize",
@@ -42,23 +42,22 @@ const componentDefinition = {
42
42
  }
43
43
  },
44
44
  fragmentNode: ({ uniforms, childNode }) => {
45
- const { vec2: vec2$1, vec3: vec3$1, vec4: vec4$1, sin: sin$1, cos: cos$1, fract, length, smoothstep, dot: dot$1, screenUV: screenUV$1, viewportSize: viewportSize$1, radians } = TSL;
46
- if (!childNode) return vec4$1(0);
47
- const _uv = screenUV$1;
45
+ if (!childNode) return vec4(0);
46
+ const _uv = screenUV;
48
47
  const frequency = uniforms.frequency.uniform;
49
48
  const angleDegrees = uniforms.angle.uniform;
50
49
  const smoothness = uniforms.smoothness.uniform;
51
50
  const angle = radians(angleDegrees);
52
- const aspect = viewportSize$1.x.div(viewportSize$1.y);
53
- const aspectCorrectedUV = vec2$1(_uv.x.mul(aspect), _uv.y);
54
- const c = cos$1(angle);
55
- const s = sin$1(angle);
56
- const gridUV = fract(vec2$1(dot$1(aspectCorrectedUV, vec2$1(c, s.negate())), dot$1(aspectCorrectedUV, vec2$1(s, c))).mul(frequency)).sub(.5);
51
+ const aspect = viewportSize.x.div(viewportSize.y);
52
+ const aspectCorrectedUV = vec2(_uv.x.mul(aspect), _uv.y);
53
+ const c = cos(angle);
54
+ const s = sin(angle);
55
+ const gridUV = fract(vec2(dot(aspectCorrectedUV, vec2(c, s.negate())), dot(aspectCorrectedUV, vec2(s, c))).mul(frequency)).sub(.5);
57
56
  const originalColor = childNode;
58
- const dotSize = dot$1(originalColor.rgb, vec3$1(.299, .587, .114)).mul(.7).add(.15);
57
+ const dotSize = dot(originalColor.rgb, vec3(.299, .587, .114)).mul(.7).add(.15);
59
58
  const dist = length(gridUV);
60
59
  const dotPattern = smoothstep(dotSize.add(smoothness), dotSize.sub(smoothness), dist);
61
- return vec4$1(originalColor.rgb.mul(dotPattern), originalColor.a.mul(dotPattern));
60
+ return vec4(originalColor.rgb.mul(dotPattern), originalColor.a.mul(dotPattern));
62
61
  }
63
62
  };
64
63
  var Halftone_default = componentDefinition;
@@ -1,5 +1,5 @@
1
1
  import { SRGBColorSpace, Texture, TextureLoader } from "three/webgpu";
2
- import * as TSL from "three/tsl";
2
+ import { float, max, min, or, screenUV, select, step, texture, uniform, vec2, vec4, viewportSize } from "three/tsl";
3
3
  const componentDefinition = {
4
4
  name: "ImageTexture",
5
5
  category: "Base Layers",
@@ -55,17 +55,16 @@ const componentDefinition = {
55
55
  }
56
56
  },
57
57
  fragmentNode: ({ uniforms, onCleanup, onBeforeRender, uvContext }) => {
58
- const { vec2: vec2$1, vec4: vec4$1, float: float$1, texture, screenUV: screenUV$1, viewportSize: viewportSize$1, step: step$1, min: min$1, max: max$1 } = TSL;
59
- const baseUV = uvContext ?? screenUV$1;
58
+ const baseUV = uvContext ?? screenUV;
60
59
  const loader = new TextureLoader();
61
60
  let currentUrl = "";
62
61
  let isLoading = false;
63
62
  const placeholderTexture = new Texture();
64
63
  placeholderTexture.colorSpace = SRGBColorSpace;
65
64
  const textureNode = texture(placeholderTexture);
66
- const imageAspectUniform = TSL.uniform(1);
67
- const imageWidthUniform = TSL.uniform(0);
68
- const imageHeightUniform = TSL.uniform(0);
65
+ const imageAspectUniform = uniform(1);
66
+ const imageWidthUniform = uniform(0);
67
+ const imageHeightUniform = uniform(0);
69
68
  const loadImage = (url) => {
70
69
  if (!url || url.trim() === "" || isLoading) return;
71
70
  isLoading = true;
@@ -114,29 +113,29 @@ const componentDefinition = {
114
113
  onCleanup(() => {
115
114
  placeholderTexture.dispose();
116
115
  });
117
- const uv = baseUV;
118
- const viewportAspect = viewportSize$1.x.div(viewportSize$1.y);
116
+ const uv$1 = baseUV;
117
+ const viewportAspect = viewportSize.x.div(viewportSize.y);
119
118
  const objectFitMode = uniforms.objectFit.uniform;
120
- const coverScale = max$1(viewportAspect.div(imageAspectUniform), float$1(1));
121
- const coverUVScale = vec2$1(imageAspectUniform.div(viewportAspect).mul(coverScale), coverScale);
122
- const containScale = min$1(viewportAspect.div(imageAspectUniform), float$1(1));
123
- const containUVScale = vec2$1(imageAspectUniform.div(viewportAspect).mul(containScale), containScale);
124
- const fillUVScale = vec2$1(1, 1);
125
- const scaleDownScale = min$1(min$1(viewportAspect.div(imageAspectUniform), float$1(1)), min$1(viewportSize$1.x.div(imageWidthUniform), viewportSize$1.y.div(imageHeightUniform)));
126
- const scaleDownUVScale = vec2$1(imageAspectUniform.div(viewportAspect).mul(scaleDownScale), scaleDownScale);
127
- const noneScale = min$1(viewportSize$1.x.div(imageWidthUniform), viewportSize$1.y.div(imageHeightUniform));
128
- const noneUVScale = vec2$1(imageAspectUniform.div(viewportAspect).mul(noneScale), noneScale);
129
- const isCover = step$1(objectFitMode, float$1(.5));
130
- const isContain = step$1(float$1(.5), objectFitMode).mul(step$1(objectFitMode, float$1(1.5)));
131
- const isFill = step$1(float$1(1.5), objectFitMode).mul(step$1(objectFitMode, float$1(2.5)));
132
- const isScaleDown = step$1(float$1(2.5), objectFitMode).mul(step$1(objectFitMode, float$1(3.5)));
133
- const isNone = step$1(float$1(3.5), objectFitMode);
134
- const uvScale = vec2$1(0).add(coverUVScale.mul(isCover)).add(containUVScale.mul(isContain)).add(fillUVScale.mul(isFill)).add(scaleDownUVScale.mul(isScaleDown)).add(noneUVScale.mul(isNone));
135
- const adjustedUV = uv.sub(vec2$1(.5)).div(uvScale).add(vec2$1(.5));
136
- const finalUV = vec2$1(adjustedUV.x, float$1(1).sub(adjustedUV.y));
119
+ const coverScale = max(viewportAspect.div(imageAspectUniform), float(1));
120
+ const coverUVScale = vec2(imageAspectUniform.div(viewportAspect).mul(coverScale), coverScale);
121
+ const containScale = min(viewportAspect.div(imageAspectUniform), float(1));
122
+ const containUVScale = vec2(imageAspectUniform.div(viewportAspect).mul(containScale), containScale);
123
+ const fillUVScale = vec2(1, 1);
124
+ const scaleDownScale = min(min(viewportAspect.div(imageAspectUniform), float(1)), min(viewportSize.x.div(imageWidthUniform), viewportSize.y.div(imageHeightUniform)));
125
+ const scaleDownUVScale = vec2(imageAspectUniform.div(viewportAspect).mul(scaleDownScale), scaleDownScale);
126
+ const noneScale = min(viewportSize.x.div(imageWidthUniform), viewportSize.y.div(imageHeightUniform));
127
+ const noneUVScale = vec2(imageAspectUniform.div(viewportAspect).mul(noneScale), noneScale);
128
+ const isCover = step(objectFitMode, float(.5));
129
+ const isContain = step(float(.5), objectFitMode).mul(step(objectFitMode, float(1.5)));
130
+ const isFill = step(float(1.5), objectFitMode).mul(step(objectFitMode, float(2.5)));
131
+ const isScaleDown = step(float(2.5), objectFitMode).mul(step(objectFitMode, float(3.5)));
132
+ const isNone = step(float(3.5), objectFitMode);
133
+ const uvScale = vec2(0).add(coverUVScale.mul(isCover)).add(containUVScale.mul(isContain)).add(fillUVScale.mul(isFill)).add(scaleDownUVScale.mul(isScaleDown)).add(noneUVScale.mul(isNone));
134
+ const adjustedUV = uv$1.sub(vec2(.5)).div(uvScale).add(vec2(.5));
135
+ const finalUV = vec2(adjustedUV.x, float(1).sub(adjustedUV.y));
137
136
  const sampledColor = textureNode.sample(finalUV);
138
- const isOutOfBounds = TSL.or(TSL.or(finalUV.x.lessThan(0), finalUV.x.greaterThan(1)), TSL.or(finalUV.y.lessThan(0), finalUV.y.greaterThan(1)));
139
- return vec4$1(sampledColor.rgb, TSL.select(isOutOfBounds, float$1(0), sampledColor.a));
137
+ const isOutOfBounds = or(or(finalUV.x.lessThan(0), finalUV.x.greaterThan(1)), or(finalUV.y.lessThan(0), finalUV.y.greaterThan(1)));
138
+ return vec4(sampledColor.rgb, select(isOutOfBounds, float(0), sampledColor.a));
140
139
  }
141
140
  };
142
141
  var ImageTexture_default = componentDefinition;
@@ -1,4 +1,4 @@
1
- import * as TSL from "three/tsl";
1
+ import { vec3, vec4 } from "three/tsl";
2
2
  const componentDefinition = {
3
3
  name: "Invert",
4
4
  category: "Adjustments",
@@ -6,15 +6,14 @@ const componentDefinition = {
6
6
  requiresChild: true,
7
7
  props: {},
8
8
  fragmentNode: ({ childNode }) => {
9
- const { vec4: vec4$1, vec3: vec3$1 } = TSL;
10
9
  if (!childNode) {
11
10
  console.error("You must pass a child component into the Invert shader.");
12
- return vec4$1(0);
11
+ return vec4(0);
13
12
  }
14
- const sourceColor = childNode || vec4$1(0, 0, 0, 0);
13
+ const sourceColor = childNode || vec4(0, 0, 0, 0);
15
14
  const alpha = sourceColor.a;
16
- const unpremultiplied = alpha.greaterThan(0).select(sourceColor.rgb.div(alpha), vec3$1(0, 0, 0));
17
- return vec4$1(vec3$1(1, 1, 1).sub(unpremultiplied).mul(alpha), alpha);
15
+ const unpremultiplied = alpha.greaterThan(0).select(sourceColor.rgb.div(alpha), vec3(0, 0, 0));
16
+ return vec4(vec3(1, 1, 1).sub(unpremultiplied).mul(alpha), alpha);
18
17
  }
19
18
  };
20
19
  var Invert_default = componentDefinition;
@@ -1,5 +1,5 @@
1
- import { n as transformAngle } from "./transformations-DxfQXZWi.js";
2
- import * as TSL from "three/tsl";
1
+ import { n as transformAngle } from "./transformations-Dv5JW9ck.js";
2
+ import { Fn, convertToTexture, cos, float, radians, screenUV, sin, vec2, vec4, viewportSize } from "three/tsl";
3
3
  const componentDefinition = {
4
4
  name: "LinearBlur",
5
5
  category: "Blurs",
@@ -32,24 +32,23 @@ const componentDefinition = {
32
32
  }
33
33
  },
34
34
  fragmentNode: ({ uniforms, childNode, onCleanup }) => {
35
- const { vec2: vec2$1, vec4: vec4$1, float: float$1, screenUV: screenUV$1, viewportSize: viewportSize$1, sin: sin$1, cos: cos$1, radians, Fn, convertToTexture: convertToTexture$1 } = TSL;
36
- if (!childNode) return vec4$1(0, 0, 0, 0);
37
- const childTexture = convertToTexture$1(childNode);
35
+ if (!childNode) return vec4(0, 0, 0, 0);
36
+ const childTexture = convertToTexture(childNode);
38
37
  onCleanup(() => {
39
38
  if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
40
39
  });
41
40
  const angleRad = radians(uniforms.angle.uniform);
42
- const blurDirection = vec2$1(cos$1(angleRad), sin$1(angleRad));
41
+ const blurDirection = vec2(cos(angleRad), sin(angleRad));
43
42
  return Fn(() => {
44
- const uv = screenUV$1;
45
- const texel = vec2$1(1).div(viewportSize$1);
43
+ const uv$1 = screenUV;
44
+ const texel = vec2(1).div(viewportSize);
46
45
  const blurVector = blurDirection.mul(uniforms.intensity.uniform).mul(texel).mul(2);
47
- const total = vec4$1(0).toVar();
48
- const totalWeight = float$1(0).toVar();
46
+ const total = vec4(0).toVar();
47
+ const totalWeight = float(0).toVar();
49
48
  for (let i = 0; i < 32; i++) {
50
- const t = float$1(i).div(float$1(31)).sub(.5).mul(2);
51
- const weight = float$1(1).div(float$1(2.506628)).mul(float$1(-.5).mul(t).mul(t).div(float$1(.64)).exp());
52
- const coord = uv.add(blurVector.mul(t.mul(.5)));
49
+ const t = float(i).div(float(31)).sub(.5).mul(2);
50
+ const weight = float(1).div(float(2.506628)).mul(float(-.5).mul(t).mul(t).div(float(.64)).exp());
51
+ const coord = uv$1.add(blurVector.mul(t.mul(.5)));
53
52
  const sample = childTexture.sample(coord).mul(weight);
54
53
  total.assign(total.add(sample));
55
54
  totalWeight.assign(totalWeight.add(weight));
@@ -1,6 +1,6 @@
1
- import { a as transformEdges, i as transformColorSpace, n as transformAngle, o as transformPosition, r as transformColor, t as colorSpaceOptions } from "./transformations-DxfQXZWi.js";
2
- import { t as mixColors } from "./colorMixing-BXiTAqJU.js";
3
- import * as TSL from "three/tsl";
1
+ import { a as transformEdges, i as transformColorSpace, n as transformAngle, o as transformPosition, r as transformColor, t as colorSpaceOptions } from "./transformations-Dv5JW9ck.js";
2
+ import { t as mixColors } from "./colorMixing-CZPFmiT4.js";
3
+ import { abs, cos, dot, float, fract, length, mod, normalize, radians, screenUV, sin, vec2, vec4 } from "three/tsl";
4
4
  const componentDefinition = {
5
5
  name: "LinearGradient",
6
6
  category: "Base Layers",
@@ -100,33 +100,32 @@ const componentDefinition = {
100
100
  }
101
101
  },
102
102
  fragmentNode: ({ uniforms, uvContext }) => {
103
- const { vec2: vec2$1, vec4: vec4$1, float: float$1, cos: cos$1, sin: sin$1, dot: dot$1, radians, screenUV: screenUV$1, length, normalize, abs: abs$1, mod, fract } = TSL;
104
- const uv = uvContext ?? screenUV$1;
105
- const startPos = vec2$1(uniforms.start.uniform[0], uniforms.start.uniform[1].oneMinus());
106
- const endPos = vec2$1(uniforms.end.uniform[0], uniforms.end.uniform[1].oneMinus());
103
+ const uv$1 = uvContext ?? screenUV;
104
+ const startPos = vec2(uniforms.start.uniform[0], uniforms.start.uniform[1].oneMinus());
105
+ const endPos = vec2(uniforms.end.uniform[0], uniforms.end.uniform[1].oneMinus());
107
106
  const gradientVector = endPos.sub(startPos);
108
107
  const gradientLength = length(gradientVector);
109
108
  const gradientDir = normalize(gradientVector);
110
109
  const angleRad = radians(uniforms.angle.uniform).negate();
111
- const cosAngle = cos$1(angleRad);
112
- const sinAngle = sin$1(angleRad);
110
+ const cosAngle = cos(angleRad);
111
+ const sinAngle = sin(angleRad);
113
112
  const midpoint = startPos.add(endPos).mul(.5);
114
- const centeredUV = uv.sub(midpoint);
115
- const t = dot$1(vec2$1(centeredUV.x.mul(cosAngle).sub(centeredUV.y.mul(sinAngle)), centeredUV.x.mul(sinAngle).add(centeredUV.y.mul(cosAngle))).add(midpoint).sub(startPos), gradientDir).div(gradientLength.max(1e-6));
113
+ const centeredUV = uv$1.sub(midpoint);
114
+ const t = dot(vec2(centeredUV.x.mul(cosAngle).sub(centeredUV.y.mul(sinAngle)), centeredUV.x.mul(sinAngle).add(centeredUV.y.mul(cosAngle))).add(midpoint).sub(startPos), gradientDir).div(gradientLength.max(1e-6));
116
115
  const edgeMode = uniforms.edges.uniform;
117
- const stretchT = t.clamp(float$1(0), float$1(1));
118
- const inBoundsX = t.greaterThanEqual(float$1(0)).select(float$1(1), float$1(0));
119
- const inBoundsY = t.lessThanEqual(float$1(1)).select(float$1(1), float$1(0));
116
+ const stretchT = t.clamp(float(0), float(1));
117
+ const inBoundsX = t.greaterThanEqual(float(0)).select(float(1), float(0));
118
+ const inBoundsY = t.lessThanEqual(float(1)).select(float(1), float(0));
120
119
  const inBounds = inBoundsX.mul(inBoundsY);
121
- const mirrorT = mod(abs$1(t), float$1(2));
122
- const finalMirrorT = mirrorT.greaterThan(float$1(1)).select(float$1(2).sub(mirrorT), mirrorT);
120
+ const mirrorT = mod(abs(t), float(2));
121
+ const finalMirrorT = mirrorT.greaterThan(float(1)).select(float(2).sub(mirrorT), mirrorT);
123
122
  const wrapT = fract(t);
124
- const isMode1OrHigher = edgeMode.greaterThanEqual(float$1(.5));
125
- const isMode2OrHigher = edgeMode.greaterThanEqual(float$1(1.5));
126
- const finalT = edgeMode.greaterThanEqual(float$1(2.5)).select(wrapT, isMode2OrHigher.select(finalMirrorT, isMode1OrHigher.select(t, stretchT)));
127
- const mixedColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, finalT.clamp(float$1(0), float$1(1)), uniforms.colorSpace.uniform);
128
- const finalAlpha = isMode1OrHigher.and(edgeMode.lessThan(float$1(1.5))).select(mixedColor.w.mul(inBounds), mixedColor.w);
129
- return vec4$1(mixedColor.x, mixedColor.y, mixedColor.z, finalAlpha);
123
+ const isMode1OrHigher = edgeMode.greaterThanEqual(float(.5));
124
+ const isMode2OrHigher = edgeMode.greaterThanEqual(float(1.5));
125
+ const finalT = edgeMode.greaterThanEqual(float(2.5)).select(wrapT, isMode2OrHigher.select(finalMirrorT, isMode1OrHigher.select(t, stretchT)));
126
+ const mixedColor = mixColors(uniforms.colorA.uniform, uniforms.colorB.uniform, finalT.clamp(float(0), float(1)), uniforms.colorSpace.uniform);
127
+ const finalAlpha = isMode1OrHigher.and(edgeMode.lessThan(float(1.5))).select(mixedColor.w.mul(inBounds), mixedColor.w);
128
+ return vec4(mixedColor.x, mixedColor.y, mixedColor.z, finalAlpha);
130
129
  }
131
130
  };
132
131
  var LinearGradient_default = componentDefinition;