shaders 2.5.103 → 2.5.105

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 (240) hide show
  1. package/dist/core/{Blur-CXXttTb1.js → Blur-Cxx3ZuHi.js} +1 -1
  2. package/dist/core/{ChannelBlur-gzP71FWd.js → ChannelBlur-Cth0biwG.js} +1 -1
  3. package/dist/core/Crystal-COGiLVvV.js +402 -0
  4. package/dist/core/{Emboss-ClQV27Mt.js → Emboss-LU-6cckT.js} +50 -42
  5. package/dist/core/Fog-DhFHErOx.js +674 -0
  6. package/dist/core/{Glass-C04tCmBL.js → Glass-TRSXbuE6.js} +99 -91
  7. package/dist/core/{Glow-BwaPYDRZ.js → Glow-8bKkyehK.js} +1 -1
  8. package/dist/core/{Neon-Dg8UfC7P.js → Neon-CMmGJzPy.js} +72 -61
  9. package/dist/core/{ProgressiveBlur-B8xwWyTM.js → ProgressiveBlur-B_z0pZ1V.js} +1 -1
  10. package/dist/core/Smoke-LIDjCv7f.js +629 -0
  11. package/dist/core/SmokeFill-ChSIfTxW.js +641 -0
  12. package/dist/core/{TiltShift-CI3FlfYk.js → TiltShift-GqDjHvmk.js} +1 -1
  13. package/dist/core/{VideoTexture-DnHIs4pp.js → VideoTexture-SWLe5c3m.js} +1 -1
  14. package/dist/core/{WebcamTexture-XBDo2kgN.js → WebcamTexture-cXPyEumA.js} +1 -1
  15. package/dist/core/{computeBlur-C3oX720H.js → computeBlur-DeXZ99YL.js} +30 -21
  16. package/dist/core/effects/emboss.d.ts.map +1 -1
  17. package/dist/core/effects/glass.d.ts.map +1 -1
  18. package/dist/core/effects/neon.d.ts.map +1 -1
  19. package/dist/core/index.js +78 -75
  20. package/dist/core/registry.js +77 -74
  21. package/dist/core/renderer.d.ts.map +1 -1
  22. package/dist/core/shaderRegistry-AbMwztl7.js +252 -0
  23. package/dist/core/shaderRegistry.d.ts.map +1 -1
  24. package/dist/core/shaders/Blur/index.js +2 -2
  25. package/dist/core/shaders/ChannelBlur/index.js +2 -2
  26. package/dist/core/shaders/Crystal/index.d.ts.map +1 -1
  27. package/dist/core/shaders/Crystal/index.js +1 -1
  28. package/dist/core/shaders/Emboss/index.js +1 -1
  29. package/dist/core/shaders/Fog/index.d.ts +78 -0
  30. package/dist/core/shaders/Fog/index.d.ts.map +1 -0
  31. package/dist/core/shaders/Fog/index.js +4 -0
  32. package/dist/core/shaders/Form3D/index.js +1 -1
  33. package/dist/core/shaders/Glass/index.d.ts.map +1 -1
  34. package/dist/core/shaders/Glass/index.js +2 -2
  35. package/dist/core/shaders/GlassTiles/index.js +1 -1
  36. package/dist/core/shaders/Glitch/index.js +1 -1
  37. package/dist/core/shaders/Glow/index.js +2 -2
  38. package/dist/core/shaders/Godrays/index.js +1 -1
  39. package/dist/core/shaders/Grayscale/index.js +1 -1
  40. package/dist/core/shaders/Grid/index.js +1 -1
  41. package/dist/core/shaders/GridDistortion/index.js +1 -1
  42. package/dist/core/shaders/Group/index.js +1 -1
  43. package/dist/core/shaders/Halftone/index.js +1 -1
  44. package/dist/core/shaders/HexGrid/index.js +1 -1
  45. package/dist/core/shaders/HueShift/index.js +1 -1
  46. package/dist/core/shaders/ImageTexture/index.js +1 -1
  47. package/dist/core/shaders/Invert/index.js +1 -1
  48. package/dist/core/shaders/Kaleidoscope/index.js +1 -1
  49. package/dist/core/shaders/LensFlare/index.js +1 -1
  50. package/dist/core/shaders/LinearBlur/index.js +1 -1
  51. package/dist/core/shaders/LinearGradient/index.js +1 -1
  52. package/dist/core/shaders/Liquify/index.js +1 -1
  53. package/dist/core/shaders/Mirror/index.js +1 -1
  54. package/dist/core/shaders/MultiPointGradient/index.js +1 -1
  55. package/dist/core/shaders/Neon/index.js +1 -1
  56. package/dist/core/shaders/Paper/index.js +1 -1
  57. package/dist/core/shaders/Perspective/index.js +1 -1
  58. package/dist/core/shaders/Pixelate/index.js +1 -1
  59. package/dist/core/shaders/Plasma/index.js +1 -1
  60. package/dist/core/shaders/PolarCoordinates/index.js +1 -1
  61. package/dist/core/shaders/Polygon/index.js +1 -1
  62. package/dist/core/shaders/Posterize/index.js +1 -1
  63. package/dist/core/shaders/ProgressiveBlur/index.js +2 -2
  64. package/dist/core/shaders/RadialGradient/index.js +1 -1
  65. package/dist/core/shaders/RectangularCoordinates/index.js +1 -1
  66. package/dist/core/shaders/Ring/index.js +1 -1
  67. package/dist/core/shaders/Ripples/index.js +1 -1
  68. package/dist/core/shaders/RoundedRect/index.js +1 -1
  69. package/dist/core/shaders/Saturation/index.js +1 -1
  70. package/dist/core/shaders/Sharpness/index.js +1 -1
  71. package/dist/core/shaders/Shatter/index.js +1 -1
  72. package/dist/core/shaders/SimplexNoise/index.js +1 -1
  73. package/dist/core/shaders/SineWave/index.js +1 -1
  74. package/dist/core/shaders/Smoke/index.d.ts +113 -0
  75. package/dist/core/shaders/Smoke/index.d.ts.map +1 -0
  76. package/dist/core/shaders/Smoke/index.js +4 -0
  77. package/dist/core/shaders/SmokeFill/index.d.ts +145 -0
  78. package/dist/core/shaders/SmokeFill/index.d.ts.map +1 -0
  79. package/dist/core/shaders/SmokeFill/index.js +5 -0
  80. package/dist/core/shaders/Solarize/index.js +1 -1
  81. package/dist/core/shaders/SolidColor/index.js +1 -1
  82. package/dist/core/shaders/Spherize/index.js +1 -1
  83. package/dist/core/shaders/Spiral/index.js +1 -1
  84. package/dist/core/shaders/Star/index.js +1 -1
  85. package/dist/core/shaders/Strands/index.js +1 -1
  86. package/dist/core/shaders/Stretch/index.js +1 -1
  87. package/dist/core/shaders/Stripes/index.js +1 -1
  88. package/dist/core/shaders/StudioBackground/index.js +1 -1
  89. package/dist/core/shaders/Swirl/index.js +1 -1
  90. package/dist/core/shaders/TiltShift/index.js +2 -2
  91. package/dist/core/shaders/Tint/index.js +1 -1
  92. package/dist/core/shaders/Trapezoid/index.js +1 -1
  93. package/dist/core/shaders/Tritone/index.js +1 -1
  94. package/dist/core/shaders/Truchet/index.js +1 -1
  95. package/dist/core/shaders/Twirl/index.js +1 -1
  96. package/dist/core/shaders/VHS/index.js +1 -1
  97. package/dist/core/shaders/Vesica/index.js +1 -1
  98. package/dist/core/shaders/Vibrance/index.js +1 -1
  99. package/dist/core/shaders/VideoTexture/index.js +2 -2
  100. package/dist/core/shaders/Vignette/index.js +1 -1
  101. package/dist/core/shaders/Voronoi/index.js +1 -1
  102. package/dist/core/shaders/WaveDistortion/index.js +1 -1
  103. package/dist/core/shaders/Weave/index.js +1 -1
  104. package/dist/core/shaders/WebcamTexture/index.js +2 -2
  105. package/dist/core/shaders/ZoomBlur/index.js +1 -1
  106. package/dist/core/utilities/computeBlur.d.ts +1 -1
  107. package/dist/core/utilities/computeBlur.d.ts.map +1 -1
  108. package/dist/js/createShader.js +1 -1
  109. package/dist/js/utils/generatePresetCode.d.ts.map +1 -1
  110. package/dist/js/utils/generatePresetCode.js +67 -0
  111. package/dist/react/Fog.js +223 -0
  112. package/dist/react/Preview.js +3 -0
  113. package/dist/react/Shader.js +1 -1
  114. package/dist/react/Smoke.js +223 -0
  115. package/dist/react/SmokeFill.js +223 -0
  116. package/dist/react/components/Fog.d.ts +31 -0
  117. package/dist/react/components/Fog.d.ts.map +1 -0
  118. package/dist/react/components/Smoke.d.ts +33 -0
  119. package/dist/react/components/Smoke.d.ts.map +1 -0
  120. package/dist/react/components/SmokeFill.d.ts +34 -0
  121. package/dist/react/components/SmokeFill.d.ts.map +1 -0
  122. package/dist/react/engine/Preview.d.ts.map +1 -1
  123. package/dist/react/index.d.ts +3 -0
  124. package/dist/react/index.d.ts.map +1 -1
  125. package/dist/react/index.js +4 -1
  126. package/dist/react/utils/generatePresetCode.d.ts.map +1 -1
  127. package/dist/react/utils/generatePresetCode.js +67 -0
  128. package/dist/registry.js +1189 -0
  129. package/dist/solid/components/Fog.d.ts +28 -0
  130. package/dist/solid/components/Fog.d.ts.map +1 -0
  131. package/dist/solid/components/Fog.js +228 -0
  132. package/dist/solid/components/Smoke.d.ts +30 -0
  133. package/dist/solid/components/Smoke.d.ts.map +1 -0
  134. package/dist/solid/components/Smoke.js +228 -0
  135. package/dist/solid/components/SmokeFill.d.ts +31 -0
  136. package/dist/solid/components/SmokeFill.d.ts.map +1 -0
  137. package/dist/solid/components/SmokeFill.js +228 -0
  138. package/dist/solid/engine/Preview.d.ts.map +1 -1
  139. package/dist/solid/engine/Preview.js +162 -156
  140. package/dist/solid/engine/Shader.js +1 -1
  141. package/dist/solid/index.d.ts +3 -0
  142. package/dist/solid/index.d.ts.map +1 -1
  143. package/dist/solid/index.js +144 -138
  144. package/dist/solid/utils/generatePresetCode.d.ts.map +1 -1
  145. package/dist/solid/utils/generatePresetCode.js +67 -0
  146. package/dist/svelte/components/Fog.svelte.d.ts +19 -0
  147. package/dist/svelte/components/Smoke.svelte.d.ts +20 -0
  148. package/dist/svelte/components/SmokeFill.svelte.d.ts +21 -0
  149. package/dist/svelte/{generatePresetCode-psTzYsW3.js → generatePresetCode-DR_OAIL7.js} +67 -0
  150. package/dist/svelte/index.d.ts +3 -0
  151. package/dist/svelte/index.js +1151 -551
  152. package/dist/svelte/source/components/Fog.svelte +325 -0
  153. package/dist/svelte/source/components/Smoke.svelte +326 -0
  154. package/dist/svelte/source/components/SmokeFill.svelte +327 -0
  155. package/dist/svelte/source/engine/Preview.svelte +6 -0
  156. package/dist/svelte/source/index.js +3 -0
  157. package/dist/svelte/utils/generatePresetCode.js +1 -1
  158. package/dist/vue/Fog.js +3 -0
  159. package/dist/vue/Fog.vue_vue_type_script_setup_true_lang.js +222 -0
  160. package/dist/vue/Preview.vue_vue_type_script_setup_true_lang.js +6 -0
  161. package/dist/vue/Shader.vue_vue_type_script_setup_true_lang.js +1 -1
  162. package/dist/vue/Smoke.js +3 -0
  163. package/dist/vue/Smoke.vue_vue_type_script_setup_true_lang.js +227 -0
  164. package/dist/vue/SmokeFill.js +3 -0
  165. package/dist/vue/SmokeFill.vue_vue_type_script_setup_true_lang.js +232 -0
  166. package/dist/vue/components/Fog.vue.d.ts +54 -0
  167. package/dist/vue/components/Fog.vue.d.ts.map +1 -0
  168. package/dist/vue/components/Smoke.vue.d.ts +55 -0
  169. package/dist/vue/components/Smoke.vue.d.ts.map +1 -0
  170. package/dist/vue/components/SmokeFill.vue.d.ts +56 -0
  171. package/dist/vue/components/SmokeFill.vue.d.ts.map +1 -0
  172. package/dist/vue/index.d.ts +3 -0
  173. package/dist/vue/index.d.ts.map +1 -1
  174. package/dist/vue/index.js +4 -1
  175. package/dist/vue/utils/generatePresetCode.d.ts.map +1 -1
  176. package/dist/vue/utils/generatePresetCode.js +67 -0
  177. package/package.json +25 -1
  178. package/dist/core/Crystal-xVyUhVD-.js +0 -394
  179. package/dist/core/shaderRegistry-BWuH2me2.js +0 -246
  180. /package/dist/core/{Form3D-rKpxb9t3.js → Form3D-DaPbLGUi.js} +0 -0
  181. /package/dist/core/{GlassTiles-k1C4a4u8.js → GlassTiles-Dgh6nOaE.js} +0 -0
  182. /package/dist/core/{Glitch-DzPMkBu4.js → Glitch-BsbzLahF.js} +0 -0
  183. /package/dist/core/{Godrays-DAYmq-BP.js → Godrays-D1LINbut.js} +0 -0
  184. /package/dist/core/{Grayscale-lYKBBkGY.js → Grayscale-Ri-695Uh.js} +0 -0
  185. /package/dist/core/{Grid-BJ-nxN3i.js → Grid-BYSsAIEv.js} +0 -0
  186. /package/dist/core/{GridDistortion-DtaRNrTZ.js → GridDistortion-DWFGD8ya.js} +0 -0
  187. /package/dist/core/{Group-DpozigtX.js → Group-CkhjTW59.js} +0 -0
  188. /package/dist/core/{Halftone-XFa7by1s.js → Halftone-BUCDTTAU.js} +0 -0
  189. /package/dist/core/{HexGrid-D-EmQ4kI.js → HexGrid-BUiDrehv.js} +0 -0
  190. /package/dist/core/{HueShift-D9K0ynaS.js → HueShift-BtGVMu7q.js} +0 -0
  191. /package/dist/core/{ImageTexture-CArkZMfh.js → ImageTexture-CrX_9-f0.js} +0 -0
  192. /package/dist/core/{Invert-DCnwo_Xq.js → Invert-azYrcDMi.js} +0 -0
  193. /package/dist/core/{Kaleidoscope-BytHro3k.js → Kaleidoscope-CFWtKisp.js} +0 -0
  194. /package/dist/core/{LensFlare-B0vv4x97.js → LensFlare-ttrXgfea.js} +0 -0
  195. /package/dist/core/{LinearBlur-BFewxPjV.js → LinearBlur-By2aD8OO.js} +0 -0
  196. /package/dist/core/{LinearGradient-BKUf_u7r.js → LinearGradient-CM02z32l.js} +0 -0
  197. /package/dist/core/{Liquify-cE5dxrfh.js → Liquify-CyXo6vAH.js} +0 -0
  198. /package/dist/core/{Mirror-DIle92J8.js → Mirror-B7XmfGdw.js} +0 -0
  199. /package/dist/core/{MultiPointGradient-DDwac_mm.js → MultiPointGradient-8zGSIM4U.js} +0 -0
  200. /package/dist/core/{Paper-bMSMCeYK.js → Paper-B08rxNys.js} +0 -0
  201. /package/dist/core/{Perspective-BmfvQV6W.js → Perspective-BN_OpTZq.js} +0 -0
  202. /package/dist/core/{Pixelate-Dl26r6IT.js → Pixelate-dxPAFCRu.js} +0 -0
  203. /package/dist/core/{Plasma-CJWS1TvX.js → Plasma-DGCw0cd7.js} +0 -0
  204. /package/dist/core/{PolarCoordinates-lq6K4WBm.js → PolarCoordinates-CMYCFT4S.js} +0 -0
  205. /package/dist/core/{Polygon-DRCs3CYs.js → Polygon-CsCOt5YE.js} +0 -0
  206. /package/dist/core/{Posterize-BjH7Zscm.js → Posterize-Blv9pzPT.js} +0 -0
  207. /package/dist/core/{RadialGradient-DiGFPgrn.js → RadialGradient-De0gtdh3.js} +0 -0
  208. /package/dist/core/{RectangularCoordinates-COkNDxi0.js → RectangularCoordinates-8Sa2GaDy.js} +0 -0
  209. /package/dist/core/{Ring-QApyKPzE.js → Ring-kHH-DIDQ.js} +0 -0
  210. /package/dist/core/{Ripples-C8Q17Hvz.js → Ripples-Bf6Zwg6X.js} +0 -0
  211. /package/dist/core/{RoundedRect-Ca9af9xe.js → RoundedRect-B0sWh2BN.js} +0 -0
  212. /package/dist/core/{Saturation-CgDaiq6n.js → Saturation-CB19kOXg.js} +0 -0
  213. /package/dist/core/{Sharpness-CRXT0D30.js → Sharpness-CQOboeqy.js} +0 -0
  214. /package/dist/core/{Shatter-BssZTRYJ.js → Shatter-BhK75BiG.js} +0 -0
  215. /package/dist/core/{SimplexNoise-KfTCAfpL.js → SimplexNoise-BcSgytjc.js} +0 -0
  216. /package/dist/core/{SineWave-Ckeap_YM.js → SineWave-VTNDSK_g.js} +0 -0
  217. /package/dist/core/{Solarize-DhtQYYpW.js → Solarize-CWDgSBiv.js} +0 -0
  218. /package/dist/core/{SolidColor-6yUkGybH.js → SolidColor-DhMdM3bE.js} +0 -0
  219. /package/dist/core/{Spherize-8LXrGGG_.js → Spherize-BZxwopX8.js} +0 -0
  220. /package/dist/core/{Spiral-Bs7uZrBr.js → Spiral-gpkw37l1.js} +0 -0
  221. /package/dist/core/{Star-DiXwnPGP.js → Star-WJAOZ5P5.js} +0 -0
  222. /package/dist/core/{Strands-DsAAVemq.js → Strands-DOthZNHt.js} +0 -0
  223. /package/dist/core/{Stretch-D7P2R5lV.js → Stretch--GV6hbru.js} +0 -0
  224. /package/dist/core/{Stripes-DF8agIiJ.js → Stripes-CFCXw1_N.js} +0 -0
  225. /package/dist/core/{StudioBackground-BFeNfwEu.js → StudioBackground-DJr-cxOL.js} +0 -0
  226. /package/dist/core/{Swirl-BwezrSAA.js → Swirl-By5FadQK.js} +0 -0
  227. /package/dist/core/{Tint-BdXlqlzz.js → Tint-DaTx2HII.js} +0 -0
  228. /package/dist/core/{Trapezoid-BX_hmeZJ.js → Trapezoid-Co0sIA73.js} +0 -0
  229. /package/dist/core/{Tritone-BlJ7cchN.js → Tritone-C9Yx69Tw.js} +0 -0
  230. /package/dist/core/{Truchet-Bnn0fwbF.js → Truchet-CkFSkniR.js} +0 -0
  231. /package/dist/core/{Twirl-C5ijhqz1.js → Twirl-v8pLqUTN.js} +0 -0
  232. /package/dist/core/{VHS-CQJ1hV_D.js → VHS-mKd1QBBj.js} +0 -0
  233. /package/dist/core/{Vesica-DU0f85NG.js → Vesica-CxP7UD0a.js} +0 -0
  234. /package/dist/core/{Vibrance-CGvYDeds.js → Vibrance-WR5yQv_9.js} +0 -0
  235. /package/dist/core/{Vignette-BJaonUVL.js → Vignette-hAIKTi35.js} +0 -0
  236. /package/dist/core/{Voronoi-DZemzWA4.js → Voronoi-DOGmwUSK.js} +0 -0
  237. /package/dist/core/{WaveDistortion--Y-m667K.js → WaveDistortion-BGdgj3Iz.js} +0 -0
  238. /package/dist/core/{Weave-CtyohvHz.js → Weave-CIP_EUPa.js} +0 -0
  239. /package/dist/core/{ZoomBlur-BwkhsFRE.js → ZoomBlur-BuIVpHGG.js} +0 -0
  240. /package/dist/core/{browser-DTNngPey.js → browser-D8zonASQ.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { a as transformColor, l as transformPosition } from "./transformations-B5lM6fYX.js";
2
- import { t as createGaussianBlurCompute } from "./computeBlur-C3oX720H.js";
2
+ import { t as createGaussianBlurCompute } from "./computeBlur-DeXZ99YL.js";
3
3
  import { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from "./sdf-DyC2H_qS.js";
4
- import { Fn, clamp, convertToTexture, dot, exp2, float, max, mix, pow, screenUV, smoothstep, sqrt, texture, uniform, vec2, vec3, vec4, viewportSize } from "three/tsl";
4
+ import { Fn, If, clamp, convertToTexture, dot, exp2, float, max, mix, pow, screenUV, smoothstep, sqrt, texture, uniform, vec2, vec3, vec4, viewportSize } from "three/tsl";
5
5
  var GOLDEN_ANGLE = 2.3999632297286535;
6
6
  var BLUR_SAMPLE_COUNT = 9;
7
7
  const BLUR_DISK = [];
@@ -32,101 +32,109 @@ function applyGlassEffect(childTexture, sdfSampler, uniforms, onBeforeRender, bl
32
32
  const sdfUV = vec2(uv$1.x.sub(centerPos.x).mul(aspect).div(scale).add(float(.5)), uv$1.y.sub(centerPos.y).div(scale).add(float(.5)));
33
33
  const sdfRaw = sdfSampler(sdfUV).r;
34
34
  const sdf = sdfRaw.div(scale);
35
- const EPS = float(.01);
36
- const gradX = sdfSampler(sdfUV.add(vec2(EPS, float(0)))).r.sub(sdfRaw).div(EPS);
37
- const gradY = sdfSampler(sdfUV.add(vec2(float(0), EPS))).r.sub(sdfRaw).div(EPS);
38
- const rb1 = clamp(sdf.negate().div(sharp).mul(float(32)), float(0), float(1));
39
- const rb2base = clamp(sdf.sub(pxH).negate().div(sharp).mul(float(16)), float(0), float(1)).sub(clamp(sdf.negate().div(sharp).mul(float(16)), float(0), float(1)));
40
- const lightFacing = gradX.mul(lx).add(gradY.mul(ly)).mul(float(.5)).add(float(.5));
41
- const rb2 = rb2base.mul(lightFacing).mul(uniforms.highlight.uniform);
42
- const thicknessRange = uniforms.thickness.uniform.mul(float(.3)).max(float(.005));
43
- const depthNorm = clamp(sdf.negate().div(thicknessRange), float(0), float(1));
44
- const refrStrength = float(1).sub(depthNorm).mul(float(1).sub(depthNorm));
45
- const refrScale = uniforms.refraction.uniform.mul(float(.15));
46
- const offsetX = gradX.negate().mul(refrScale).mul(refrStrength).div(aspect);
47
- const offsetY = gradY.negate().mul(refrScale).mul(refrStrength);
48
- const lensUV = centerPos.add(uv$1.sub(centerPos).div(uniforms.innerZoom.uniform)).add(vec2(offsetX, offsetY));
49
- const blurEnabled = typeof uniforms.blur.uniform.value === "number" ? uniforms.blur.uniform.value > 0 : true;
50
- const aberrationEnabled = typeof uniforms.aberration.uniform.value === "number" ? uniforms.aberration.uniform.value > 0 : true;
51
- let blurred;
52
- if (blurredTexture && blurEnabled) {
53
- const blurTex = texture(blurredTexture);
54
- if (!aberrationEnabled) blurred = blurTex.sample(lensUV);
55
- else {
35
+ const output = vec4(0).toVar();
36
+ If(sdf.greaterThan(pxH.mul(float(2))), () => {
37
+ const baseSample = childTexture.sample(uv$1);
38
+ const earlyAlpha = uniforms.cutout.uniform.equal(float(1)).select(float(0), baseSample.a);
39
+ output.assign(vec4(baseSample.r, baseSample.g, baseSample.b, earlyAlpha));
40
+ }).Else(() => {
41
+ const EPS = float(.01);
42
+ const gradX = sdfSampler(sdfUV.add(vec2(EPS, float(0)))).r.sub(sdfRaw).div(EPS);
43
+ const gradY = sdfSampler(sdfUV.add(vec2(float(0), EPS))).r.sub(sdfRaw).div(EPS);
44
+ const rb1 = clamp(sdf.negate().div(sharp).mul(float(32)), float(0), float(1));
45
+ const rb2base = clamp(sdf.sub(pxH).negate().div(sharp).mul(float(16)), float(0), float(1)).sub(clamp(sdf.negate().div(sharp).mul(float(16)), float(0), float(1)));
46
+ const lightFacing = gradX.mul(lx).add(gradY.mul(ly)).mul(float(.5)).add(float(.5));
47
+ const rb2 = rb2base.mul(lightFacing).mul(uniforms.highlight.uniform);
48
+ const thicknessRange = uniforms.thickness.uniform.mul(float(.3)).max(float(.005));
49
+ const depthNorm = clamp(sdf.negate().div(thicknessRange), float(0), float(1));
50
+ const refrStrength = float(1).sub(depthNorm).mul(float(1).sub(depthNorm));
51
+ const refrScale = uniforms.refraction.uniform.mul(float(.15));
52
+ const offsetX = gradX.negate().mul(refrScale).mul(refrStrength).div(aspect);
53
+ const offsetY = gradY.negate().mul(refrScale).mul(refrStrength);
54
+ const lensUV = centerPos.add(uv$1.sub(centerPos).div(uniforms.innerZoom.uniform)).add(vec2(offsetX, offsetY));
55
+ const blurEnabled = typeof uniforms.blur.uniform.value === "number" ? uniforms.blur.uniform.value > 0 : true;
56
+ const aberrationEnabled = typeof uniforms.aberration.uniform.value === "number" ? uniforms.aberration.uniform.value > 0 : true;
57
+ let blurred;
58
+ if (blurredTexture && blurEnabled) {
59
+ const blurTex = texture(blurredTexture);
60
+ if (!aberrationEnabled) blurred = blurTex.sample(lensUV);
61
+ else {
62
+ const chrScale = uniforms.aberration.uniform.mul(float(.06));
63
+ const chrOffX = offsetX.mul(chrScale);
64
+ const chrOffY = offsetY.mul(chrScale);
65
+ const rUV = lensUV.add(vec2(chrOffX, chrOffY));
66
+ const bUV = lensUV.sub(vec2(chrOffX, chrOffY));
67
+ const rSample = blurTex.sample(rUV);
68
+ const gSample = blurTex.sample(lensUV);
69
+ const bSample = blurTex.sample(bUV);
70
+ blurred = vec4(rSample.r, gSample.g, bSample.b, gSample.a);
71
+ }
72
+ } else if (!blurEnabled && !aberrationEnabled) blurred = childTexture.sample(lensUV);
73
+ else if (!blurEnabled && aberrationEnabled) {
56
74
  const chrScale = uniforms.aberration.uniform.mul(float(.06));
57
75
  const chrOffX = offsetX.mul(chrScale);
58
76
  const chrOffY = offsetY.mul(chrScale);
59
77
  const rUV = lensUV.add(vec2(chrOffX, chrOffY));
60
78
  const bUV = lensUV.sub(vec2(chrOffX, chrOffY));
61
- const rSample = blurTex.sample(rUV);
62
- const gSample = blurTex.sample(lensUV);
63
- const bSample = blurTex.sample(bUV);
79
+ const rSample = childTexture.sample(rUV);
80
+ const gSample = childTexture.sample(lensUV);
81
+ const bSample = childTexture.sample(bUV);
64
82
  blurred = vec4(rSample.r, gSample.g, bSample.b, gSample.a);
83
+ } else if (blurEnabled && !aberrationEnabled) {
84
+ const acc = vec4(0).toVar();
85
+ for (const [ox, oy] of BLUR_DISK) {
86
+ const blurOff = pixelSize.mul(vec2(float(ox), float(oy))).mul(uniforms.blur.uniform.mul(2));
87
+ acc.assign(acc.add(childTexture.sample(lensUV.add(blurOff))));
88
+ }
89
+ blurred = acc.mul(float(1 / BLUR_SAMPLE_COUNT));
90
+ } else {
91
+ const chrScale = uniforms.aberration.uniform.mul(float(.06));
92
+ const chrOffX = offsetX.mul(chrScale);
93
+ const chrOffY = offsetY.mul(chrScale);
94
+ const rUV = lensUV.add(vec2(chrOffX, chrOffY));
95
+ const bUV = lensUV.sub(vec2(chrOffX, chrOffY));
96
+ const accR = vec4(0).toVar();
97
+ const accG = vec4(0).toVar();
98
+ const accB = vec4(0).toVar();
99
+ for (const [ox, oy] of BLUR_DISK) {
100
+ const blurOff = pixelSize.mul(vec2(float(ox), float(oy))).mul(uniforms.blur.uniform.mul(2));
101
+ accR.assign(accR.add(childTexture.sample(rUV.add(blurOff))));
102
+ accG.assign(accG.add(childTexture.sample(lensUV.add(blurOff))));
103
+ accB.assign(accB.add(childTexture.sample(bUV.add(blurOff))));
104
+ }
105
+ const samplesInv = float(1 / BLUR_SAMPLE_COUNT);
106
+ blurred = vec4(accR.mul(samplesInv).r, accG.mul(samplesInv).g, accB.mul(samplesInv).b, accG.mul(samplesInv).a);
65
107
  }
66
- } else if (!blurEnabled && !aberrationEnabled) blurred = childTexture.sample(lensUV);
67
- else if (!blurEnabled && aberrationEnabled) {
68
- const chrScale = uniforms.aberration.uniform.mul(float(.06));
69
- const chrOffX = offsetX.mul(chrScale);
70
- const chrOffY = offsetY.mul(chrScale);
71
- const rUV = lensUV.add(vec2(chrOffX, chrOffY));
72
- const bUV = lensUV.sub(vec2(chrOffX, chrOffY));
73
- const rSample = childTexture.sample(rUV);
74
- const gSample = childTexture.sample(lensUV);
75
- const bSample = childTexture.sample(bUV);
76
- blurred = vec4(rSample.r, gSample.g, bSample.b, gSample.a);
77
- } else if (blurEnabled && !aberrationEnabled) {
78
- const acc = vec4(0).toVar();
79
- for (const [ox, oy] of BLUR_DISK) {
80
- const blurOff = pixelSize.mul(vec2(float(ox), float(oy))).mul(uniforms.blur.uniform.mul(2));
81
- acc.assign(acc.add(childTexture.sample(lensUV.add(blurOff))));
82
- }
83
- blurred = acc.mul(float(1 / BLUR_SAMPLE_COUNT));
84
- } else {
85
- const chrScale = uniforms.aberration.uniform.mul(float(.06));
86
- const chrOffX = offsetX.mul(chrScale);
87
- const chrOffY = offsetY.mul(chrScale);
88
- const rUV = lensUV.add(vec2(chrOffX, chrOffY));
89
- const bUV = lensUV.sub(vec2(chrOffX, chrOffY));
90
- const accR = vec4(0).toVar();
91
- const accG = vec4(0).toVar();
92
- const accB = vec4(0).toVar();
93
- for (const [ox, oy] of BLUR_DISK) {
94
- const blurOff = pixelSize.mul(vec2(float(ox), float(oy))).mul(uniforms.blur.uniform.mul(2));
95
- accR.assign(accR.add(childTexture.sample(rUV.add(blurOff))));
96
- accG.assign(accG.add(childTexture.sample(lensUV.add(blurOff))));
97
- accB.assign(accB.add(childTexture.sample(bUV.add(blurOff))));
98
- }
99
- const samplesInv = float(1 / BLUR_SAMPLE_COUNT);
100
- blurred = vec4(accR.mul(samplesInv).r, accG.mul(samplesInv).g, accB.mul(samplesInv).b, accG.mul(samplesInv).a);
101
- }
102
- const tintCol = vec3(uniforms.tintColor.uniform.x, uniforms.tintColor.uniform.y, uniforms.tintColor.uniform.z);
103
- const tintAmt = uniforms.tintIntensity.uniform;
104
- const blurredRgb = vec3(blurred.r, blurred.g, blurred.b);
105
- const lumWeights = vec3(.299, .587, .114);
106
- const origLum = dot(blurredRgb, lumWeights);
107
- const tinted = mix(blurredRgb, tintCol, tintAmt);
108
- const tintedLum = dot(tinted, lumWeights);
109
- const lumPreserved = tinted.mul(origLum.div(max(tintedLum, float(1e-4))));
110
- const tintedGlass = vec4(uniforms.tintPreserveLuminosity.uniform.equal(float(1)).select(lumPreserved, tinted), blurred.a);
111
- const nz = float(2);
112
- const nLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY)).add(nz.mul(nz)));
113
- const nx = gradX.div(nLen);
114
- const ny = gradY.div(nLen);
115
- const nnz = nz.div(nLen);
116
- const nDotH = nx.mul(lx.mul(float(INV_HLEN_GLASS))).add(ny.mul(ly.mul(float(INV_HLEN_GLASS)))).add(nnz.mul(float(2 * INV_HLEN_GLASS)));
117
- const shininess = exp2(float(8).sub(uniforms.highlightSoftness.uniform.mul(float(7))));
118
- const specGlint = pow(clamp(nDotH, float(0), float(1)), shininess).mul(uniforms.highlight.uniform).mul(refrStrength);
119
- const fresnelWidth = uniforms.fresnelSoftness.uniform.mul(float(.06)).max(float(.001));
120
- const fresnelDepth = clamp(sdf.negate().div(fresnelWidth), float(0), float(1));
121
- const fresnelRim = float(1).sub(fresnelDepth).mul(float(1).sub(fresnelDepth)).mul(uniforms.fresnel.uniform).mul(rb1);
122
- const hlCol = uniforms.highlightColor.uniform;
123
- const frCol = uniforms.fresnelColor.uniform;
124
- const lighting = tintedGlass.add(vec4(hlCol.x.mul(rb2), hlCol.y.mul(rb2), hlCol.z.mul(rb2), rb2)).add(vec4(hlCol.x.mul(specGlint), hlCol.y.mul(specGlint), hlCol.z.mul(specGlint), float(0))).add(vec4(frCol.x.mul(fresnelRim), frCol.y.mul(fresnelRim), frCol.z.mul(fresnelRim), float(0)));
125
- const transition = smoothstep(float(0), float(1), rb1);
126
- const isCutout = uniforms.cutout.uniform.equal(float(1));
127
- const composited = mix(childTexture.sample(uv$1), lighting, transition);
128
- const cutoutAlpha = isCutout.select(transition, float(1));
129
- return vec4(composited.r, composited.g, composited.b, composited.a.mul(cutoutAlpha));
108
+ const tintCol = vec3(uniforms.tintColor.uniform.x, uniforms.tintColor.uniform.y, uniforms.tintColor.uniform.z);
109
+ const tintAmt = uniforms.tintIntensity.uniform;
110
+ const blurredRgb = vec3(blurred.r, blurred.g, blurred.b);
111
+ const lumWeights = vec3(.299, .587, .114);
112
+ const origLum = dot(blurredRgb, lumWeights);
113
+ const tinted = mix(blurredRgb, tintCol, tintAmt);
114
+ const tintedLum = dot(tinted, lumWeights);
115
+ const lumPreserved = tinted.mul(origLum.div(max(tintedLum, float(1e-4))));
116
+ const tintedGlass = vec4(uniforms.tintPreserveLuminosity.uniform.equal(float(1)).select(lumPreserved, tinted), blurred.a);
117
+ const nz = float(2);
118
+ const nLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY)).add(nz.mul(nz)));
119
+ const nx = gradX.div(nLen);
120
+ const ny = gradY.div(nLen);
121
+ const nnz = nz.div(nLen);
122
+ const nDotH = nx.mul(lx.mul(float(INV_HLEN_GLASS))).add(ny.mul(ly.mul(float(INV_HLEN_GLASS)))).add(nnz.mul(float(2 * INV_HLEN_GLASS)));
123
+ const shininess = exp2(float(8).sub(uniforms.highlightSoftness.uniform.mul(float(7))));
124
+ const specGlint = pow(clamp(nDotH, float(0), float(1)), shininess).mul(uniforms.highlight.uniform).mul(refrStrength);
125
+ const fresnelWidth = uniforms.fresnelSoftness.uniform.mul(float(.06)).max(float(.001));
126
+ const fresnelDepth = clamp(sdf.negate().div(fresnelWidth), float(0), float(1));
127
+ const fresnelRim = float(1).sub(fresnelDepth).mul(float(1).sub(fresnelDepth)).mul(uniforms.fresnel.uniform).mul(rb1);
128
+ const hlCol = uniforms.highlightColor.uniform;
129
+ const frCol = uniforms.fresnelColor.uniform;
130
+ const lighting = tintedGlass.add(vec4(hlCol.x.mul(rb2), hlCol.y.mul(rb2), hlCol.z.mul(rb2), rb2)).add(vec4(hlCol.x.mul(specGlint), hlCol.y.mul(specGlint), hlCol.z.mul(specGlint), float(0))).add(vec4(frCol.x.mul(fresnelRim), frCol.y.mul(fresnelRim), frCol.z.mul(fresnelRim), float(0)));
131
+ const transition = smoothstep(float(0), float(1), rb1);
132
+ const isCutout = uniforms.cutout.uniform.equal(float(1));
133
+ const composited = mix(childTexture.sample(uv$1), lighting, transition);
134
+ const cutoutAlpha = isCutout.select(transition, float(1));
135
+ output.assign(vec4(composited.r, composited.g, composited.b, composited.a.mul(cutoutAlpha)));
136
+ });
137
+ return output;
130
138
  })();
131
139
  }
132
140
  var transformBoolean = (value) => value ? 1 : 0;
@@ -392,7 +400,7 @@ const componentDefinition = {
392
400
  if (childTexture?.renderTarget?.dispose) childTexture.renderTarget.dispose();
393
401
  });
394
402
  const dpr = renderer?.getPixelRatio?.() ?? 1;
395
- const { computeNodes, outputTexture, updateRadius } = createGaussianBlurCompute(childTexture, Math.round(dimensions.width * dpr), Math.round(dimensions.height * dpr), onCleanup);
403
+ const { computeNodes, outputTexture, updateRadius } = createGaussianBlurCompute(childTexture, Math.round(dimensions.width * dpr), Math.round(dimensions.height * dpr), onCleanup, .5);
396
404
  return {
397
405
  outputs: {
398
406
  childTexture,
@@ -1,5 +1,5 @@
1
1
  import { t as unpremultiplyAlpha } from "./alpha-C4ptedXe.js";
2
- import { n as createVariableGaussianBlurCompute, t as createGaussianBlurCompute } from "./computeBlur-C3oX720H.js";
2
+ import { n as createVariableGaussianBlurCompute, t as createGaussianBlurCompute } from "./computeBlur-DeXZ99YL.js";
3
3
  import { Fn, If, clamp, convertToTexture, dot, float, instanceIndex, int, max, mix, pow, screenUV, texture, textureLoad, textureStore, uint, uvec2, vec2, vec3, vec4, viewportSize } from "three/tsl";
4
4
  const componentDefinition = {
5
5
  name: "Glow",
@@ -1,6 +1,6 @@
1
1
  import { a as transformColor, l as transformPosition } from "./transformations-B5lM6fYX.js";
2
2
  import { n as createAnalyticSdfSampler, r as createSvgSdfSampler } from "./sdf-DyC2H_qS.js";
3
- import { Fn, atan, clamp, cos, exp, exp2, float, max, mix, pow, screenUV, sin, smoothstep, sqrt, uniform, vec2, vec3, vec4, viewportSize } from "three/tsl";
3
+ import { Fn, If, atan, clamp, cos, exp, exp2, float, max, mix, pow, screenUV, sin, smoothstep, sqrt, uniform, vec2, vec3, vec4, viewportSize } from "three/tsl";
4
4
  var _LZ = .7;
5
5
  var _INV_LIGHT_LEN = 1 / Math.sqrt(1 + _LZ * _LZ);
6
6
  var _LZN = _LZ * _INV_LIGHT_LEN;
@@ -23,67 +23,78 @@ function applyNeonEffect(sdfSampler, uniforms, timeNode) {
23
23
  const gradX = sdfRight.sub(sdfLeft).div(smoothEPS.mul(float(2)));
24
24
  const gradY = sdfUp.sub(sdfDown).div(smoothEPS.mul(float(2)));
25
25
  const sdf = mix(sdfCenter, sdfCenter.add(sdfRight).add(sdfLeft).add(sdfUp).add(sdfDown).div(float(5)), smoothAmt);
26
- const gradLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY))).max(float(1e-4));
27
- const gnx = gradX.div(gradLen);
28
- const gny = gradY.div(gradLen);
29
- const tubeR = uniforms.tubeThickness.uniform;
30
- const depthNorm = clamp(sdf.negate().div(tubeR.max(float(.001))), float(0), float(1));
31
- const softPx = float(.004);
32
- const outerMask = smoothstep(softPx, softPx.negate(), sdf);
33
- const innerMask = smoothstep(tubeR.add(softPx), tubeR.sub(softPx), sdf.negate());
34
- const tubeMask = outerMask.mul(innerMask);
35
- const t = depthNorm;
36
- const cylinderZ = sqrt(t.mul(float(2).sub(t)).max(float(0)));
37
- const cylinderR = float(1).sub(t);
38
- const nx = gnx.mul(cylinderR);
39
- const ny = gny.mul(cylinderR);
40
- const nz = cylinderZ;
41
- const lightRad = uniforms.lightAngle.uniform.mul(float(Math.PI / 180));
42
- const lx = cos(lightRad);
43
- const ly = sin(lightRad);
44
- const lxn = lx.mul(float(_INV_LIGHT_LEN));
45
- const lyn = ly.mul(float(_INV_LIGHT_LEN));
46
- const lzn = float(_LZN);
47
- const diffuse = clamp(nx.mul(lxn).add(ny.mul(lyn)).add(nz.mul(lzn)), float(0), float(1));
48
- const NdotH = nx.mul(lxn.mul(float(_INV_H_LEN))).add(ny.mul(lyn.mul(float(_INV_H_LEN)))).add(nz.mul(float(_HZ * _INV_H_LEN)));
49
- const shininess = exp2(float(8).sub(uniforms.specularSize.uniform.mul(float(7))));
50
- const specular = pow(clamp(NdotH, float(0), float(1)), shininess).mul(uniforms.specularIntensity.uniform);
51
- const flowDx = sdfUV.x.sub(float(.5));
52
- const flowWave = sin(atan(sdfUV.y.sub(float(.5)), flowDx).mul(float(2)).add(timeNode.mul(uniforms.flowSpeed.uniform))).mul(float(.5)).add(float(.5));
53
- const flowMod = mix(float(1), flowWave, uniforms.flowAmount.uniform);
54
- const primaryCol = vec3(uniforms.color.uniform.x, uniforms.color.uniform.y, uniforms.color.uniform.z);
55
- const secondCol = vec3(uniforms.secondaryColor.uniform.x, uniforms.secondaryColor.uniform.y, uniforms.secondaryColor.uniform.z);
56
- const blendAmt = uniforms.secondaryBlend.uniform;
57
- const baseColor = mix(primaryCol, mix(secondCol, primaryCol, diffuse), blendAmt);
58
- const ambient = float(.12);
59
- const selfEmission = cylinderZ.mul(float(.35));
60
- const shadedRgb = baseColor.mul(ambient.add(diffuse.mul(float(.55))).add(selfEmission));
61
- const specCol = vec3(specular, specular, specular);
62
- const tubeRgb = shadedRgb.add(specCol);
63
- const hotCoreAmt = smoothstep(float(.55), float(1), depthNorm).mul(uniforms.hotCoreIntensity.uniform).mul(flowMod);
64
- const tubeFlowed = mix(tubeRgb, mix(primaryCol, vec3(1, 1, 1), float(.75)), hotCoreAmt).mul(mix(float(1), flowMod, float(.4)));
26
+ const pxH = float(1).div(viewportSize.y);
65
27
  const glowR = uniforms.glowRadius.uniform.max(float(.001));
66
- const glowI = uniforms.glowIntensity.uniform;
67
- const sdfOutside = max(sdf, float(0));
68
- const innerGlowFalloff = float(12).div(glowR);
69
- const innerGlow = exp(sdfOutside.negate().mul(innerGlowFalloff)).mul(float(.7));
70
- const outerGlowFalloff = float(4).div(glowR);
71
- const outerGlow = exp(sdfOutside.negate().mul(outerGlowFalloff)).mul(float(.35));
72
- const totalGlow = innerGlow.add(outerGlow).mul(glowI);
73
- const outsideFactor = smoothstep(float(-.003), float(.003), sdf);
74
- const glowMasked = totalGlow.mul(outsideFactor);
75
- const glowCol = vec3(uniforms.glowColor.uniform.x, uniforms.glowColor.uniform.y, uniforms.glowColor.uniform.z);
76
- const flickerTime = timeNode.mul(uniforms.flickerSpeed.uniform);
77
- const f1 = sin(flickerTime.mul(float(17.13)));
78
- const f2 = sin(flickerTime.mul(float(31.71)));
79
- const f3 = sin(flickerTime.mul(float(47.29)));
80
- const combined = f1.add(f2.mul(float(.5))).add(f3.mul(float(.3)));
81
- const threshold = mix(float(-2), float(.8), uniforms.flickerAmount.uniform);
82
- const flickerValue = smoothstep(threshold.sub(float(.1)), threshold.add(float(.1)), combined);
83
- const intensityMul = uniforms.intensity.uniform.mul(flickerValue);
84
- const finalTubeRgb = tubeFlowed.mul(intensityMul);
85
- const finalGlowRgb = glowCol.mul(glowMasked).mul(intensityMul);
86
- return vec4(mix(finalGlowRgb.x, finalTubeRgb.x, tubeMask), mix(finalGlowRgb.y, finalTubeRgb.y, tubeMask), mix(finalGlowRgb.z, finalTubeRgb.z, tubeMask), max(tubeMask, clamp(glowMasked.mul(float(.6)), float(0), float(1))));
28
+ const softPx = max(pxH.div(scale), float(.004));
29
+ const output = vec4(0).toVar();
30
+ If(sdf.greaterThan(glowR.mul(float(1.5)).add(softPx)), () => {
31
+ output.assign(vec4(0, 0, 0, 0));
32
+ }).Else(() => {
33
+ const gradLen = sqrt(gradX.mul(gradX).add(gradY.mul(gradY))).max(float(1e-4));
34
+ const gnx = gradX.div(gradLen);
35
+ const gny = gradY.div(gradLen);
36
+ const tubeR = uniforms.tubeThickness.uniform;
37
+ const depthNorm = clamp(sdf.negate().div(tubeR.max(float(.001))), float(0), float(1));
38
+ const outerMask = smoothstep(softPx, softPx.negate(), sdf);
39
+ const innerMask = smoothstep(tubeR.add(softPx), tubeR.sub(softPx), sdf.negate());
40
+ const tubeMask = outerMask.mul(innerMask);
41
+ const t = depthNorm;
42
+ const cylinderZ = sqrt(t.mul(float(2).sub(t)).max(float(0)));
43
+ const cylinderR = float(1).sub(t);
44
+ const nx = gnx.mul(cylinderR);
45
+ const ny = gny.mul(cylinderR);
46
+ const nz = cylinderZ;
47
+ const lightRad = uniforms.lightAngle.uniform.mul(float(Math.PI / 180));
48
+ const lx = cos(lightRad);
49
+ const ly = sin(lightRad);
50
+ const lxn = lx.mul(float(_INV_LIGHT_LEN));
51
+ const lyn = ly.mul(float(_INV_LIGHT_LEN));
52
+ const lzn = float(_LZN);
53
+ const diffuse = clamp(nx.mul(lxn).add(ny.mul(lyn)).add(nz.mul(lzn)), float(0), float(1));
54
+ const NdotH = nx.mul(lxn.mul(float(_INV_H_LEN))).add(ny.mul(lyn.mul(float(_INV_H_LEN)))).add(nz.mul(float(_HZ * _INV_H_LEN)));
55
+ const shininess = exp2(float(8).sub(uniforms.specularSize.uniform.mul(float(7))));
56
+ const specular = pow(clamp(NdotH, float(0), float(1)), shininess).mul(uniforms.specularIntensity.uniform);
57
+ const flowDx = sdfUV.x.sub(float(.5));
58
+ const flowWave = sin(atan(sdfUV.y.sub(float(.5)), flowDx).mul(float(2)).add(timeNode.mul(uniforms.flowSpeed.uniform))).mul(float(.5)).add(float(.5));
59
+ const flowMod = mix(float(1), flowWave, uniforms.flowAmount.uniform);
60
+ const primaryCol = vec3(uniforms.color.uniform.x, uniforms.color.uniform.y, uniforms.color.uniform.z);
61
+ const secondCol = vec3(uniforms.secondaryColor.uniform.x, uniforms.secondaryColor.uniform.y, uniforms.secondaryColor.uniform.z);
62
+ const blendAmt = uniforms.secondaryBlend.uniform;
63
+ const baseColor = mix(primaryCol, mix(secondCol, primaryCol, diffuse), blendAmt);
64
+ const ambient = float(.12);
65
+ const selfEmission = cylinderZ.mul(float(.35));
66
+ const shadedRgb = baseColor.mul(ambient.add(diffuse.mul(float(.55))).add(selfEmission));
67
+ const specCol = vec3(specular, specular, specular);
68
+ const tubeRgb = shadedRgb.add(specCol);
69
+ const hotCoreAmt = smoothstep(float(.55), float(1), depthNorm).mul(uniforms.hotCoreIntensity.uniform).mul(flowMod);
70
+ const tubeFlowed = mix(tubeRgb, mix(primaryCol, vec3(1, 1, 1), float(.75)), hotCoreAmt).mul(mix(float(1), flowMod, float(.4)));
71
+ const glowI = uniforms.glowIntensity.uniform;
72
+ const sdfOutside = max(sdf, float(0));
73
+ const innerGlowFalloff = float(12).div(glowR);
74
+ const innerGlow = exp(sdfOutside.negate().mul(innerGlowFalloff)).mul(float(.7));
75
+ const outerGlowFalloff = float(4).div(glowR);
76
+ const outerGlow = exp(sdfOutside.negate().mul(outerGlowFalloff)).mul(float(.35));
77
+ const totalGlow = innerGlow.add(outerGlow).mul(glowI);
78
+ const outsideFactor = smoothstep(float(-.003), float(.003), sdf);
79
+ const glowMasked = totalGlow.mul(outsideFactor);
80
+ const glowCol = vec3(uniforms.glowColor.uniform.x, uniforms.glowColor.uniform.y, uniforms.glowColor.uniform.z);
81
+ const flickerTime = timeNode.mul(uniforms.flickerSpeed.uniform);
82
+ const f1 = sin(flickerTime.mul(float(17.13)));
83
+ const f2 = sin(flickerTime.mul(float(31.71)));
84
+ const f3 = sin(flickerTime.mul(float(47.29)));
85
+ const combined = f1.add(f2.mul(float(.5))).add(f3.mul(float(.3)));
86
+ const threshold = mix(float(-2), float(.8), uniforms.flickerAmount.uniform);
87
+ const flickerValue = smoothstep(threshold.sub(float(.1)), threshold.add(float(.1)), combined);
88
+ const intensityMul = uniforms.intensity.uniform.mul(flickerValue);
89
+ const finalTubeRgb = tubeFlowed.mul(intensityMul);
90
+ const finalGlowRgb = glowCol.mul(glowMasked).mul(intensityMul);
91
+ const finalR = mix(finalGlowRgb.x, finalTubeRgb.x, tubeMask);
92
+ const finalG = mix(finalGlowRgb.y, finalTubeRgb.y, tubeMask);
93
+ const finalB = mix(finalGlowRgb.z, finalTubeRgb.z, tubeMask);
94
+ const finalA = max(tubeMask, clamp(glowMasked.mul(float(.6)), float(0), float(1)));
95
+ output.assign(vec4(finalR, finalG, finalB, finalA));
96
+ });
97
+ return output;
87
98
  })();
88
99
  }
89
100
  var DEFAULT_SHAPE_CONFIG = JSON.stringify({
@@ -1,6 +1,6 @@
1
1
  import { l as transformPosition, r as transformAngle } from "./transformations-B5lM6fYX.js";
2
2
  import { t as unpremultiplyAlpha } from "./alpha-C4ptedXe.js";
3
- import { n as createVariableGaussianBlurCompute } from "./computeBlur-C3oX720H.js";
3
+ import { n as createVariableGaussianBlurCompute } from "./computeBlur-DeXZ99YL.js";
4
4
  import { Fn, If, clamp, convertToTexture, cos, dot, float, instanceIndex, int, max, mix, pow, radians, screenUV, sin, smoothstep, texture, textureLoad, textureStore, uint, uniform, uvec2, vec2, vec3, vec4, viewportSize } from "three/tsl";
5
5
  const componentDefinition = {
6
6
  name: "ProgressiveBlur",