shaders 2.2.25 → 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 (184) hide show
  1. package/dist/core/{AngularBlur-Dl2gwk68.js → AngularBlur-DKFExWUF.js} +15 -16
  2. package/dist/core/{Ascii-Dha_QpT3.js → Ascii-BRApYlD4.js} +18 -19
  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-CgB-egNY.js → Checkerboard-SKsXoUXE.js} +9 -10
  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-D2Nf4p3w.js → Dither-BNEeyo0u.js} +7 -8
  16. package/dist/core/{DotGrid-CzOwquo4.js → DotGrid-CRRS6nbt.js} +10 -11
  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-D9Nnu1qg.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/{Grayscale-DRny75A9.js → Grayscale-Bi-XBvO_.js} +4 -6
  24. package/dist/core/{Grid-DgyDa4H1.js → Grid-CWHxwO7R.js} +7 -8
  25. package/dist/core/{GridDistortion-BAspCYvp.js → GridDistortion-CZB9w-rv.js} +21 -22
  26. package/dist/core/{Group-Dul7PUBl.js → Group-C0AknFDS.js} +2 -3
  27. package/dist/core/{Halftone-Ifv5F_FT.js → Halftone-MMcLMRpL.js} +11 -12
  28. package/dist/core/HueShift-DvOpzM7W.js +47 -0
  29. package/dist/core/{ImageTexture-DvYcQgJB.js → ImageTexture-D9OMwqAs.js} +26 -27
  30. package/dist/core/{Invert-Fz0NtIJc.js → Invert-Bmjbp6g6.js} +5 -6
  31. package/dist/core/{LinearBlur-LmhnQoA4.js → LinearBlur-B-Ikurxt.js} +12 -13
  32. package/dist/core/{LinearGradient-xbloQjzt.js → LinearGradient-DV6UkhZk.js} +21 -22
  33. package/dist/core/{Liquify-DMe1V5-O.js → Liquify-W8UQNeEM.js} +24 -26
  34. package/dist/core/{Pixelate-Cv8537Pj.js → Pixelate-_pyYeLRP.js} +6 -8
  35. package/dist/core/{PolarCoordinates-DDvDhBE-.js → PolarCoordinates-D63xm0oJ.js} +15 -17
  36. package/dist/core/{Posterize-3m3xkWOz.js → Posterize-DIjjPS72.js} +4 -5
  37. package/dist/core/{ProgressiveBlur-EGkevObV.js → ProgressiveBlur-G-s-o9ic.js} +23 -24
  38. package/dist/core/{RadialGradient-B7ZZB_VJ.js → RadialGradient-BGVqSwh0.js} +6 -7
  39. package/dist/core/{RectangularCoordinates-muWR8mZS.js → RectangularCoordinates-DyHBo456.js} +19 -21
  40. package/dist/core/{Ripples-8XaZaXQF.js → Ripples-2FGWCZlp.js} +9 -10
  41. package/dist/core/{Saturation-CYFI1jzN.js → Saturation-J0nI4hmh.js} +4 -6
  42. package/dist/core/{SimplexNoise-DJUe0wz_.js → SimplexNoise-B6dtUCmn.js} +4 -4
  43. package/dist/core/{SineWave-Dl3nFO1W.js → SineWave-BtPf6-2H.js} +11 -12
  44. package/dist/core/{SolidColor-CWGq_Bjq.js → SolidColor-CETl1cEr.js} +1 -1
  45. package/dist/core/{Spherize-C-jZEUsN.js → Spherize-BwvUcorJ.js} +24 -25
  46. package/dist/core/{Spiral-BSB_R39p.js → Spiral-DmJWmUmr.js} +16 -17
  47. package/dist/core/{Strands-0stO5BMy.js → Strands-CV1oCmHx.js} +31 -32
  48. package/dist/core/{Stretch-B645paha.js → Stretch-pl-Cn2F8.js} +23 -25
  49. package/dist/core/{Swirl-CVnbawit.js → Swirl-D65vXLDw.js} +15 -16
  50. package/dist/core/{TiltShift-0CxNRI6L.js → TiltShift-CFcK6Hzg.js} +22 -23
  51. package/dist/core/{Tritone-Daa-I5UD.js → Tritone-EmnjV2rX.js} +8 -9
  52. package/dist/core/{Twirl-2CJVZEtk.js → Twirl-HSMyRx5I.js} +18 -20
  53. package/dist/core/{Vibrance-DRtecEvb.js → Vibrance-BI5q7_Wt.js} +8 -6
  54. package/dist/core/{WaveDistortion-BscXN2rs.js → WaveDistortion-DG8GO_l8.js} +31 -33
  55. package/dist/core/{ZoomBlur-CAqK0Kju.js → ZoomBlur-C01oGwwG.js} +12 -13
  56. package/dist/core/colorMixing-CZPFmiT4.js +68 -0
  57. package/dist/core/edges-Djr_12SL.js +25 -0
  58. package/dist/core/helpers/distort.d.ts.map +1 -1
  59. package/dist/core/helpers/edgeMask.d.ts.map +1 -1
  60. package/dist/core/helpers/glow.d.ts +3 -2
  61. package/dist/core/helpers/glow.d.ts.map +1 -1
  62. package/dist/core/helpers/grain.d.ts.map +1 -1
  63. package/dist/core/index.js +99 -107
  64. package/dist/core/shaders/AngularBlur/index.d.ts.map +1 -1
  65. package/dist/core/shaders/AngularBlur/index.js +2 -2
  66. package/dist/core/shaders/Ascii/index.d.ts.map +1 -1
  67. package/dist/core/shaders/Ascii/index.js +1 -1
  68. package/dist/core/shaders/Beam/index.d.ts.map +1 -1
  69. package/dist/core/shaders/Beam/index.js +3 -3
  70. package/dist/core/shaders/Blob/index.d.ts.map +1 -1
  71. package/dist/core/shaders/Blob/index.js +3 -3
  72. package/dist/core/shaders/Blur/index.d.ts.map +1 -1
  73. package/dist/core/shaders/Blur/index.js +1 -1
  74. package/dist/core/shaders/Bulge/index.d.ts.map +1 -1
  75. package/dist/core/shaders/Bulge/index.js +3 -3
  76. package/dist/core/shaders/CRTScreen/index.d.ts.map +1 -1
  77. package/dist/core/shaders/CRTScreen/index.js +1 -1
  78. package/dist/core/shaders/ChannelBlur/index.d.ts.map +1 -1
  79. package/dist/core/shaders/ChannelBlur/index.js +1 -1
  80. package/dist/core/shaders/Checkerboard/index.d.ts.map +1 -1
  81. package/dist/core/shaders/Checkerboard/index.js +3 -3
  82. package/dist/core/shaders/ChromaFlow/index.d.ts.map +1 -1
  83. package/dist/core/shaders/ChromaFlow/index.js +2 -2
  84. package/dist/core/shaders/ChromaticAberration/index.d.ts.map +1 -1
  85. package/dist/core/shaders/ChromaticAberration/index.js +2 -2
  86. package/dist/core/shaders/Circle/index.d.ts.map +1 -1
  87. package/dist/core/shaders/Circle/index.js +2 -2
  88. package/dist/core/shaders/CursorTrail/index.d.ts.map +1 -1
  89. package/dist/core/shaders/CursorTrail/index.js +3 -3
  90. package/dist/core/shaders/DiffuseBlur/index.d.ts.map +1 -1
  91. package/dist/core/shaders/DiffuseBlur/index.js +3 -3
  92. package/dist/core/shaders/Dither/index.d.ts.map +1 -1
  93. package/dist/core/shaders/Dither/index.js +2 -2
  94. package/dist/core/shaders/DotGrid/index.d.ts.map +1 -1
  95. package/dist/core/shaders/DotGrid/index.js +2 -2
  96. package/dist/core/shaders/Duotone/index.d.ts.map +1 -1
  97. package/dist/core/shaders/Duotone/index.js +3 -3
  98. package/dist/core/shaders/FilmGrain/index.d.ts.map +1 -1
  99. package/dist/core/shaders/FilmGrain/index.js +1 -1
  100. package/dist/core/shaders/FloatingParticles/index.d.ts.map +1 -1
  101. package/dist/core/shaders/FloatingParticles/index.js +2 -2
  102. package/dist/core/shaders/GlassTiles/index.d.ts.map +1 -1
  103. package/dist/core/shaders/GlassTiles/index.js +1 -1
  104. package/dist/core/shaders/Glow/index.d.ts.map +1 -1
  105. package/dist/core/shaders/Glow/index.js +1 -1
  106. package/dist/core/shaders/Godrays/index.d.ts.map +1 -1
  107. package/dist/core/shaders/Godrays/index.js +2 -2
  108. package/dist/core/shaders/Grayscale/index.d.ts.map +1 -1
  109. package/dist/core/shaders/Grayscale/index.js +1 -1
  110. package/dist/core/shaders/Grid/index.d.ts.map +1 -1
  111. package/dist/core/shaders/Grid/index.js +2 -2
  112. package/dist/core/shaders/GridDistortion/index.d.ts.map +1 -1
  113. package/dist/core/shaders/GridDistortion/index.js +3 -3
  114. package/dist/core/shaders/Group/index.d.ts.map +1 -1
  115. package/dist/core/shaders/Group/index.js +1 -1
  116. package/dist/core/shaders/Halftone/index.d.ts.map +1 -1
  117. package/dist/core/shaders/Halftone/index.js +2 -2
  118. package/dist/core/shaders/HueShift/index.d.ts.map +1 -1
  119. package/dist/core/shaders/HueShift/index.js +1 -1
  120. package/dist/core/shaders/ImageTexture/index.d.ts.map +1 -1
  121. package/dist/core/shaders/ImageTexture/index.js +1 -1
  122. package/dist/core/shaders/Invert/index.d.ts.map +1 -1
  123. package/dist/core/shaders/Invert/index.js +1 -1
  124. package/dist/core/shaders/LinearBlur/index.d.ts.map +1 -1
  125. package/dist/core/shaders/LinearBlur/index.js +2 -2
  126. package/dist/core/shaders/LinearGradient/index.d.ts.map +1 -1
  127. package/dist/core/shaders/LinearGradient/index.js +3 -3
  128. package/dist/core/shaders/Liquify/index.d.ts.map +1 -1
  129. package/dist/core/shaders/Liquify/index.js +3 -3
  130. package/dist/core/shaders/Pixelate/index.d.ts.map +1 -1
  131. package/dist/core/shaders/Pixelate/index.js +1 -1
  132. package/dist/core/shaders/PolarCoordinates/index.d.ts.map +1 -1
  133. package/dist/core/shaders/PolarCoordinates/index.js +3 -3
  134. package/dist/core/shaders/Posterize/index.d.ts.map +1 -1
  135. package/dist/core/shaders/Posterize/index.js +1 -1
  136. package/dist/core/shaders/ProgressiveBlur/index.d.ts.map +1 -1
  137. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  138. package/dist/core/shaders/RadialGradient/index.d.ts.map +1 -1
  139. package/dist/core/shaders/RadialGradient/index.js +3 -3
  140. package/dist/core/shaders/RectangularCoordinates/index.d.ts.map +1 -1
  141. package/dist/core/shaders/RectangularCoordinates/index.js +3 -3
  142. package/dist/core/shaders/Ripples/index.d.ts.map +1 -1
  143. package/dist/core/shaders/Ripples/index.js +3 -3
  144. package/dist/core/shaders/Saturation/index.d.ts.map +1 -1
  145. package/dist/core/shaders/Saturation/index.js +1 -1
  146. package/dist/core/shaders/SimplexNoise/index.js +3 -3
  147. package/dist/core/shaders/SineWave/index.d.ts.map +1 -1
  148. package/dist/core/shaders/SineWave/index.js +2 -2
  149. package/dist/core/shaders/SolidColor/index.js +2 -2
  150. package/dist/core/shaders/Spherize/index.d.ts.map +1 -1
  151. package/dist/core/shaders/Spherize/index.js +2 -2
  152. package/dist/core/shaders/Spiral/index.d.ts.map +1 -1
  153. package/dist/core/shaders/Spiral/index.js +3 -3
  154. package/dist/core/shaders/Strands/index.d.ts.map +1 -1
  155. package/dist/core/shaders/Strands/index.js +2 -2
  156. package/dist/core/shaders/Stretch/index.d.ts.map +1 -1
  157. package/dist/core/shaders/Stretch/index.js +3 -3
  158. package/dist/core/shaders/Swirl/index.d.ts.map +1 -1
  159. package/dist/core/shaders/Swirl/index.js +3 -3
  160. package/dist/core/shaders/TiltShift/index.d.ts.map +1 -1
  161. package/dist/core/shaders/TiltShift/index.js +2 -2
  162. package/dist/core/shaders/Tritone/index.d.ts.map +1 -1
  163. package/dist/core/shaders/Tritone/index.js +3 -3
  164. package/dist/core/shaders/Twirl/index.d.ts.map +1 -1
  165. package/dist/core/shaders/Twirl/index.js +3 -3
  166. package/dist/core/shaders/Vibrance/index.d.ts.map +1 -1
  167. package/dist/core/shaders/Vibrance/index.js +1 -1
  168. package/dist/core/shaders/WaveDistortion/index.d.ts.map +1 -1
  169. package/dist/core/shaders/WaveDistortion/index.js +3 -3
  170. package/dist/core/shaders/ZoomBlur/index.d.ts.map +1 -1
  171. package/dist/core/shaders/ZoomBlur/index.js +2 -2
  172. package/dist/core/{transformations-DxfQXZWi.js → transformations-Dv5JW9ck.js} +11 -12
  173. package/dist/core/utilities/colorMixing.d.ts.map +1 -1
  174. package/dist/core/utilities/edges.d.ts.map +1 -1
  175. package/dist/core/utilities/transformations.d.ts.map +1 -1
  176. package/dist/core/utilities/uniforms.d.ts.map +1 -1
  177. package/dist/core/utilities/uv.d.ts.map +1 -1
  178. package/dist/core/utilities/uvTransform.d.ts.map +1 -1
  179. package/package.json +1 -1
  180. package/dist/core/ChannelBlur-CvM6GJgZ.js +0 -118
  181. package/dist/core/GlassTiles-CnjCvajI.js +0 -69
  182. package/dist/core/HueShift-De8ukMWs.js +0 -31
  183. package/dist/core/colorMixing-BXiTAqJU.js +0 -69
  184. 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,4 @@
1
- import * as TSL from "three/tsl";
2
- import { grayscale } from "three/src/nodes/display/ColorAdjustment";
1
+ import { dot, vec3, vec4 } from "three/tsl";
3
2
  const componentDefinition = {
4
3
  name: "Grayscale",
5
4
  category: "Adjustments",
@@ -7,13 +6,12 @@ const componentDefinition = {
7
6
  requiresChild: true,
8
7
  props: {},
9
8
  fragmentNode: ({ childNode }) => {
10
- const { vec4: vec4$1 } = TSL;
11
9
  if (!childNode) {
12
10
  console.error("You must pass a child component into the Grayscale shader.");
13
- return vec4$1(0);
11
+ return vec4(0);
14
12
  }
15
- const sourceColor = childNode || vec4$1(0, 0, 0, 0);
16
- return vec4$1(grayscale(sourceColor.rgb).rgb, sourceColor.a);
13
+ const luminance = dot(childNode.rgb, vec3(.2126, .7152, .0722));
14
+ return vec4(luminance, luminance, luminance, childNode.a);
17
15
  }
18
16
  };
19
17
  var Grayscale_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;
@@ -0,0 +1,47 @@
1
+ import { cos, sin, vec3, vec4 } from "three/tsl";
2
+ const componentDefinition = {
3
+ name: "HueShift",
4
+ category: "Adjustments",
5
+ description: "Rotate hue around the color wheel",
6
+ requiresChild: true,
7
+ props: { shift: {
8
+ default: 0,
9
+ description: "The amount to shift the hue by",
10
+ ui: {
11
+ type: "range",
12
+ min: -180,
13
+ max: 180,
14
+ step: 1,
15
+ label: "Shift"
16
+ },
17
+ transform: (value) => value * Math.PI / 180
18
+ } },
19
+ fragmentNode: ({ uniforms, childNode }) => {
20
+ if (!childNode) {
21
+ console.error("You must pass a child component into the Hue Shift shader.");
22
+ return vec4(0);
23
+ }
24
+ const angle = uniforms.shift.uniform;
25
+ const cosA = cos(angle);
26
+ const sinA = sin(angle);
27
+ const k = 1 / 3;
28
+ const sqrt3 = 1.7320508075688772;
29
+ const kOneMinusCos = cosA.oneMinus().mul(k);
30
+ const sinOverSqrt3 = sinA.div(sqrt3);
31
+ const m00 = cosA.add(kOneMinusCos);
32
+ const m01 = kOneMinusCos.sub(sinOverSqrt3);
33
+ const m02 = kOneMinusCos.add(sinOverSqrt3);
34
+ const m10 = kOneMinusCos.add(sinOverSqrt3);
35
+ const m11 = cosA.add(kOneMinusCos);
36
+ const m12 = kOneMinusCos.sub(sinOverSqrt3);
37
+ const m20 = kOneMinusCos.sub(sinOverSqrt3);
38
+ const m21 = kOneMinusCos.add(sinOverSqrt3);
39
+ const m22 = cosA.add(kOneMinusCos);
40
+ const r = childNode.r;
41
+ const g = childNode.g;
42
+ const b = childNode.b;
43
+ return vec4(vec3(r.mul(m00).add(g.mul(m01)).add(b.mul(m02)), r.mul(m10).add(g.mul(m11)).add(b.mul(m12)), r.mul(m20).add(g.mul(m21)).add(b.mul(m22))), childNode.a);
44
+ }
45
+ };
46
+ var HueShift_default = componentDefinition;
47
+ export { componentDefinition as n, HueShift_default as t };
@@ -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));