gl-transitions 1.74.0 → 1.76.0

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 (389) hide show
  1. package/README.md +78 -0
  2. package/compatibility.json +2070 -0
  3. package/glsl3/AdvancedMosaic.glsl +21 -0
  4. package/glsl3/BlockDissolve.glsl +16 -0
  5. package/glsl3/BookFlip.glsl +37 -0
  6. package/glsl3/Bounce.glsl +35 -0
  7. package/glsl3/BowTieHorizontal.glsl +123 -0
  8. package/glsl3/BowTieVertical.glsl +117 -0
  9. package/glsl3/BowTieWithParameter.glsl +74 -0
  10. package/glsl3/Box.glsl +33 -0
  11. package/glsl3/ButterflyWaveScrawler.glsl +33 -0
  12. package/glsl3/CircleCrop.glsl +20 -0
  13. package/glsl3/ColourDistance.glsl +19 -0
  14. package/glsl3/CrazyParametricFun.glsl +20 -0
  15. package/glsl3/CrossZoom.glsl +68 -0
  16. package/glsl3/DefocusBlur.glsl +47 -0
  17. package/glsl3/Directional.glsl +18 -0
  18. package/glsl3/DirectionalScaled.glsl +35 -0
  19. package/glsl3/DoomScreenTransition.glsl +62 -0
  20. package/glsl3/Dreamy.glsl +14 -0
  21. package/glsl3/DreamyZoom.glsl +43 -0
  22. package/glsl3/Drop_Zone_Flicker.glsl +159 -0
  23. package/glsl3/EdgeTransition.glsl +50 -0
  24. package/glsl3/FilmBurn.glsl +63 -0
  25. package/glsl3/Fold.glsl +12 -0
  26. package/glsl3/GlitchDisplace.glsl +78 -0
  27. package/glsl3/GlitchMemories.glsl +17 -0
  28. package/glsl3/GridFlip.glsl +77 -0
  29. package/glsl3/HSVfade.glsl +29 -0
  30. package/glsl3/HorizontalClose.glsl +16 -0
  31. package/glsl3/HorizontalOpen.glsl +18 -0
  32. package/glsl3/InvertedPageCurl.glsl +228 -0
  33. package/glsl3/LeftRight.glsl +28 -0
  34. package/glsl3/LinearBlur.glsl +30 -0
  35. package/glsl3/Mosaic.glsl +45 -0
  36. package/glsl3/Overexposure.glsl +25 -0
  37. package/glsl3/PolkaDotsCurtain.glsl +14 -0
  38. package/glsl3/PuzzleRight.glsl +57 -0
  39. package/glsl3/Radial.glsl +19 -0
  40. package/glsl3/Rectangle.glsl +29 -0
  41. package/glsl3/RectangleCrop.glsl +30 -0
  42. package/glsl3/Revolve_Left.glsl +98 -0
  43. package/glsl3/Rolls.glsl +42 -0
  44. package/glsl3/RotateScaleVanish.glsl +42 -0
  45. package/glsl3/SimpleFlip.glsl +14 -0
  46. package/glsl3/SimpleZoom.glsl +20 -0
  47. package/glsl3/SimpleZoomOut.glsl +23 -0
  48. package/glsl3/Slides.glsl +41 -0
  49. package/glsl3/StarWipe.glsl +51 -0
  50. package/glsl3/StaticFade.glsl +47 -0
  51. package/glsl3/StereoViewer.glsl +214 -0
  52. package/glsl3/StripDatamoshGlitch.glsl +187 -0
  53. package/glsl3/Swirl.glsl +34 -0
  54. package/glsl3/TVStatic.glsl +29 -0
  55. package/glsl3/TilesWave.glsl +63 -0
  56. package/glsl3/TopBottom.glsl +27 -0
  57. package/glsl3/VerticalClose.glsl +16 -0
  58. package/glsl3/VerticalOpen.glsl +17 -0
  59. package/glsl3/WaterDrop.glsl +21 -0
  60. package/glsl3/ZoomInCircles.glsl +40 -0
  61. package/glsl3/ZoomLeftWipe.glsl +36 -0
  62. package/glsl3/ZoomRigthWipe.glsl +36 -0
  63. package/glsl3/angular.glsl +25 -0
  64. package/glsl3/burn.glsl +14 -0
  65. package/glsl3/burn0.glsl +55 -0
  66. package/glsl3/cannabisleaf.glsl +18 -0
  67. package/glsl3/chessboard.glsl +28 -0
  68. package/glsl3/circle.glsl +24 -0
  69. package/glsl3/circleopen.glsl +18 -0
  70. package/glsl3/colorphase.glsl +19 -0
  71. package/glsl3/coord-from-in.glsl +18 -0
  72. package/glsl3/crosshatch.glsl +20 -0
  73. package/glsl3/crosswarp.glsl +10 -0
  74. package/glsl3/cube.glsl +71 -0
  75. package/glsl3/directional-easing.glsl +19 -0
  76. package/glsl3/directionalwarp.glsl +20 -0
  77. package/glsl3/directionalwipe.glsl +22 -0
  78. package/glsl3/displacement.glsl +26 -0
  79. package/glsl3/dissolve.glsl +54 -0
  80. package/glsl3/doorway.glsl +55 -0
  81. package/glsl3/fade.glsl +13 -0
  82. package/glsl3/fadecolor.glsl +15 -0
  83. package/glsl3/fadegrayscale.glsl +21 -0
  84. package/glsl3/flyeye.glsl +20 -0
  85. package/glsl3/fragment.glsl +54 -0
  86. package/glsl3/heart.glsl +19 -0
  87. package/glsl3/hexagonalize.glsl +78 -0
  88. package/glsl3/kaleidoscope.glsl +25 -0
  89. package/glsl3/luma.glsl +15 -0
  90. package/glsl3/luminance_melt.glsl +131 -0
  91. package/glsl3/morph.glsl +20 -0
  92. package/glsl3/mosaic_transition.glsl +20 -0
  93. package/glsl3/multiply_blend.glsl +19 -0
  94. package/glsl3/old_tv_lost_signal.glsl +51 -0
  95. package/glsl3/parametric_glitch.glsl +29 -0
  96. package/glsl3/perlin.glsl +66 -0
  97. package/glsl3/pinwheel.glsl +20 -0
  98. package/glsl3/pixelize.glsl +21 -0
  99. package/glsl3/polar_function.glsl +24 -0
  100. package/glsl3/powerKaleido.glsl +57 -0
  101. package/glsl3/randomNoisex.glsl +15 -0
  102. package/glsl3/randomsquares.glsl +20 -0
  103. package/glsl3/ripple.glsl +20 -0
  104. package/glsl3/rotateTransition.glsl +22 -0
  105. package/glsl3/rotate_scale_fade.glsl +39 -0
  106. package/glsl3/scale-in.glsl +18 -0
  107. package/glsl3/splitSlideInHorizontal.glsl +26 -0
  108. package/glsl3/splitSlideInOutHorizontal.glsl +23 -0
  109. package/glsl3/splitSlideInOutVertical.glsl +23 -0
  110. package/glsl3/splitSlideInVertical.glsl +24 -0
  111. package/glsl3/splitSlideOutHorizontal.glsl +22 -0
  112. package/glsl3/splitSlideOutVertical.glsl +22 -0
  113. package/glsl3/squareswire.glsl +26 -0
  114. package/glsl3/squeeze.glsl +23 -0
  115. package/glsl3/static_wipe.glsl +39 -0
  116. package/glsl3/swap.glsl +64 -0
  117. package/glsl3/tangentMotionBlur.glsl +139 -0
  118. package/glsl3/undulatingBurnOut.glsl +56 -0
  119. package/glsl3/wind.glsl +25 -0
  120. package/glsl3/windowblinds.glsl +18 -0
  121. package/glsl3/windowslice.glsl +16 -0
  122. package/glsl3/wipeDown.glsl +12 -0
  123. package/glsl3/wipeLeft.glsl +12 -0
  124. package/glsl3/wipeRight.glsl +12 -0
  125. package/glsl3/wipeUp.glsl +12 -0
  126. package/glsl3/x_axis_translation.glsl +21 -0
  127. package/glsl3/zoomInOut.glsl +20 -0
  128. package/index.d.ts +61 -0
  129. package/layouts.json +2956 -0
  130. package/llms-full.txt +1707 -0
  131. package/llms.txt +153 -0
  132. package/msl/AdvancedMosaic.metal +136 -0
  133. package/msl/BlockDissolve.metal +108 -0
  134. package/msl/BookFlip.metal +191 -0
  135. package/msl/Bounce.metal +128 -0
  136. package/msl/BowTieHorizontal.metal +375 -0
  137. package/msl/BowTieVertical.metal +375 -0
  138. package/msl/BowTieWithParameter.metal +361 -0
  139. package/msl/Box.metal +204 -0
  140. package/msl/ButterflyWaveScrawler.metal +190 -0
  141. package/msl/CircleCrop.metal +117 -0
  142. package/msl/ColourDistance.metal +110 -0
  143. package/msl/CrazyParametricFun.metal +139 -0
  144. package/msl/CrossZoom.metal +274 -0
  145. package/msl/DefocusBlur.metal +297 -0
  146. package/msl/Directional.metal +107 -0
  147. package/msl/DirectionalScaled.metal +147 -0
  148. package/msl/DoomScreenTransition.metal +212 -0
  149. package/msl/Dreamy.metal +133 -0
  150. package/msl/DreamyZoom.metal +182 -0
  151. package/msl/Drop_Zone_Flicker.metal +561 -0
  152. package/msl/EdgeTransition.metal +277 -0
  153. package/msl/FilmBurn.metal +425 -0
  154. package/msl/Fold.metal +110 -0
  155. package/msl/GlitchDisplace.metal +374 -0
  156. package/msl/GlitchMemories.metal +146 -0
  157. package/msl/GridFlip.metal +285 -0
  158. package/msl/HSVfade.metal +161 -0
  159. package/msl/HorizontalClose.metal +100 -0
  160. package/msl/HorizontalOpen.metal +103 -0
  161. package/msl/InvertedPageCurl.metal +762 -0
  162. package/msl/LeftRight.metal +138 -0
  163. package/msl/LinearBlur.metal +169 -0
  164. package/msl/Mosaic.metal +212 -0
  165. package/msl/Overexposure.metal +130 -0
  166. package/msl/PolkaDotsCurtain.metal +112 -0
  167. package/msl/PuzzleRight.metal +262 -0
  168. package/msl/Radial.metal +102 -0
  169. package/msl/Rectangle.metal +129 -0
  170. package/msl/RectangleCrop.metal +127 -0
  171. package/msl/Revolve_Left.metal +363 -0
  172. package/msl/Rolls.metal +209 -0
  173. package/msl/RotateScaleVanish.metal +227 -0
  174. package/msl/SimpleFlip.metal +110 -0
  175. package/msl/SimpleZoom.metal +116 -0
  176. package/msl/SimpleZoomOut.metal +127 -0
  177. package/msl/Slides.metal +244 -0
  178. package/msl/StarWipe.metal +204 -0
  179. package/msl/StaticFade.metal +193 -0
  180. package/msl/StereoViewer.metal +707 -0
  181. package/msl/StripDatamoshGlitch.metal +828 -0
  182. package/msl/Swirl.metal +152 -0
  183. package/msl/TVStatic.metal +136 -0
  184. package/msl/TilesWave.metal +290 -0
  185. package/msl/TopBottom.metal +138 -0
  186. package/msl/VerticalClose.metal +100 -0
  187. package/msl/VerticalOpen.metal +103 -0
  188. package/msl/WaterDrop.metal +126 -0
  189. package/msl/ZoomInCircles.metal +169 -0
  190. package/msl/ZoomLeftWipe.metal +152 -0
  191. package/msl/ZoomRigthWipe.metal +152 -0
  192. package/msl/angular.metal +111 -0
  193. package/msl/burn.metal +103 -0
  194. package/msl/burn0.metal +236 -0
  195. package/msl/cannabisleaf.metal +120 -0
  196. package/msl/chessboard.metal +144 -0
  197. package/msl/circle.metal +115 -0
  198. package/msl/circleopen.metal +124 -0
  199. package/msl/colorphase.metal +106 -0
  200. package/msl/coord-from-in.metal +111 -0
  201. package/msl/crosshatch.metal +126 -0
  202. package/msl/crosswarp.metal +103 -0
  203. package/msl/cube.metal +259 -0
  204. package/msl/directional-easing.metal +111 -0
  205. package/msl/directionalwarp.metal +121 -0
  206. package/msl/directionalwipe.metal +120 -0
  207. package/msl/displacement.metal +129 -0
  208. package/msl/dissolve.metal +146 -0
  209. package/msl/doorway.metal +210 -0
  210. package/msl/fade.metal +95 -0
  211. package/msl/fadecolor.metal +104 -0
  212. package/msl/fadegrayscale.metal +123 -0
  213. package/msl/flyeye.metal +133 -0
  214. package/msl/fragment.metal +276 -0
  215. package/msl/heart.metal +134 -0
  216. package/msl/hexagonalize.metal +274 -0
  217. package/msl/kaleidoscope.metal +157 -0
  218. package/msl/luma.metal +113 -0
  219. package/msl/luminance_melt.metal +337 -0
  220. package/msl/morph.metal +131 -0
  221. package/msl/mosaic_transition.metal +137 -0
  222. package/msl/multiply_blend.metal +127 -0
  223. package/msl/old_tv_lost_signal.metal +172 -0
  224. package/msl/parametric_glitch.metal +152 -0
  225. package/msl/perlin.metal +206 -0
  226. package/msl/pinwheel.metal +112 -0
  227. package/msl/pixelize.metal +134 -0
  228. package/msl/polar_function.metal +116 -0
  229. package/msl/powerKaleido.metal +304 -0
  230. package/msl/randomNoisex.metal +115 -0
  231. package/msl/randomsquares.metal +118 -0
  232. package/msl/ripple.metal +113 -0
  233. package/msl/rotateTransition.metal +116 -0
  234. package/msl/rotate_scale_fade.metal +167 -0
  235. package/msl/scale-in.metal +111 -0
  236. package/msl/splitSlideInHorizontal.metal +147 -0
  237. package/msl/splitSlideInOutHorizontal.metal +138 -0
  238. package/msl/splitSlideInOutVertical.metal +138 -0
  239. package/msl/splitSlideInVertical.metal +144 -0
  240. package/msl/splitSlideOutHorizontal.metal +131 -0
  241. package/msl/splitSlideOutVertical.metal +131 -0
  242. package/msl/squareswire.metal +144 -0
  243. package/msl/squeeze.metal +133 -0
  244. package/msl/static_wipe.metal +147 -0
  245. package/msl/swap.metal +256 -0
  246. package/msl/tangentMotionBlur.metal +583 -0
  247. package/msl/undulatingBurnOut.metal +217 -0
  248. package/msl/wind.metal +131 -0
  249. package/msl/windowblinds.metal +107 -0
  250. package/msl/windowslice.metal +108 -0
  251. package/msl/wipeDown.metal +105 -0
  252. package/msl/wipeLeft.metal +105 -0
  253. package/msl/wipeRight.metal +105 -0
  254. package/msl/wipeUp.metal +105 -0
  255. package/msl/x_axis_translation.metal +110 -0
  256. package/msl/zoomInOut.metal +125 -0
  257. package/package.json +1 -1
  258. package/skills/gl-transitions/SKILL.md +46 -0
  259. package/skills/gl-transitions/references/catalog.md +224 -0
  260. package/skills/gl-transitions/references/skia.md +118 -0
  261. package/skills/gl-transitions/references/video.md +71 -0
  262. package/skills/gl-transitions/references/webgl.md +122 -0
  263. package/sksl/index.d.ts +4 -0
  264. package/sksl/index.js +1 -0
  265. package/wgsl/AdvancedMosaic.wgsl +108 -0
  266. package/wgsl/BlockDissolve.wgsl +78 -0
  267. package/wgsl/BookFlip.wgsl +157 -0
  268. package/wgsl/Bounce.wgsl +98 -0
  269. package/wgsl/BowTieHorizontal.wgsl +331 -0
  270. package/wgsl/BowTieVertical.wgsl +331 -0
  271. package/wgsl/BowTieWithParameter.wgsl +313 -0
  272. package/wgsl/Box.wgsl +176 -0
  273. package/wgsl/ButterflyWaveScrawler.wgsl +158 -0
  274. package/wgsl/CircleCrop.wgsl +88 -0
  275. package/wgsl/ColourDistance.wgsl +82 -0
  276. package/wgsl/CrazyParametricFun.wgsl +111 -0
  277. package/wgsl/CrossZoom.wgsl +219 -0
  278. package/wgsl/DefocusBlur.wgsl +269 -0
  279. package/wgsl/Directional.wgsl +79 -0
  280. package/wgsl/DirectionalScaled.wgsl +117 -0
  281. package/wgsl/DoomScreenTransition.wgsl +171 -0
  282. package/wgsl/Dreamy.wgsl +102 -0
  283. package/wgsl/DreamyZoom.wgsl +154 -0
  284. package/wgsl/Drop_Zone_Flicker.wgsl +513 -0
  285. package/wgsl/EdgeTransition.wgsl +216 -0
  286. package/wgsl/FilmBurn.wgsl +361 -0
  287. package/wgsl/Fold.wgsl +82 -0
  288. package/wgsl/GlitchDisplace.wgsl +327 -0
  289. package/wgsl/GlitchMemories.wgsl +118 -0
  290. package/wgsl/GridFlip.wgsl +250 -0
  291. package/wgsl/HSVfade.wgsl +131 -0
  292. package/wgsl/HorizontalClose.wgsl +72 -0
  293. package/wgsl/HorizontalOpen.wgsl +75 -0
  294. package/wgsl/InvertedPageCurl.wgsl +690 -0
  295. package/wgsl/LeftRight.wgsl +109 -0
  296. package/wgsl/LinearBlur.wgsl +131 -0
  297. package/wgsl/Mosaic.wgsl +174 -0
  298. package/wgsl/Overexposure.wgsl +102 -0
  299. package/wgsl/PolkaDotsCurtain.wgsl +83 -0
  300. package/wgsl/PuzzleRight.wgsl +230 -0
  301. package/wgsl/Radial.wgsl +74 -0
  302. package/wgsl/Rectangle.wgsl +100 -0
  303. package/wgsl/RectangleCrop.wgsl +98 -0
  304. package/wgsl/Revolve_Left.wgsl +314 -0
  305. package/wgsl/Rolls.wgsl +181 -0
  306. package/wgsl/RotateScaleVanish.wgsl +199 -0
  307. package/wgsl/SimpleFlip.wgsl +82 -0
  308. package/wgsl/SimpleZoom.wgsl +85 -0
  309. package/wgsl/SimpleZoomOut.wgsl +96 -0
  310. package/wgsl/Slides.wgsl +216 -0
  311. package/wgsl/StarWipe.wgsl +169 -0
  312. package/wgsl/StaticFade.wgsl +159 -0
  313. package/wgsl/StereoViewer.wgsl +625 -0
  314. package/wgsl/StripDatamoshGlitch.wgsl +755 -0
  315. package/wgsl/Swirl.wgsl +124 -0
  316. package/wgsl/TVStatic.wgsl +106 -0
  317. package/wgsl/TilesWave.wgsl +262 -0
  318. package/wgsl/TopBottom.wgsl +109 -0
  319. package/wgsl/VerticalClose.wgsl +72 -0
  320. package/wgsl/VerticalOpen.wgsl +75 -0
  321. package/wgsl/WaterDrop.wgsl +98 -0
  322. package/wgsl/ZoomInCircles.wgsl +138 -0
  323. package/wgsl/ZoomLeftWipe.wgsl +121 -0
  324. package/wgsl/ZoomRigthWipe.wgsl +121 -0
  325. package/wgsl/angular.wgsl +83 -0
  326. package/wgsl/burn.wgsl +74 -0
  327. package/wgsl/burn0.wgsl +198 -0
  328. package/wgsl/cannabisleaf.wgsl +92 -0
  329. package/wgsl/chessboard.wgsl +116 -0
  330. package/wgsl/circle.wgsl +87 -0
  331. package/wgsl/circleopen.wgsl +96 -0
  332. package/wgsl/colorphase.wgsl +77 -0
  333. package/wgsl/coord-from-in.wgsl +83 -0
  334. package/wgsl/crosshatch.wgsl +96 -0
  335. package/wgsl/crosswarp.wgsl +75 -0
  336. package/wgsl/cube.wgsl +217 -0
  337. package/wgsl/directional-easing.wgsl +83 -0
  338. package/wgsl/directionalwarp.wgsl +92 -0
  339. package/wgsl/directionalwipe.wgsl +91 -0
  340. package/wgsl/displacement.wgsl +96 -0
  341. package/wgsl/dissolve.wgsl +116 -0
  342. package/wgsl/doorway.wgsl +174 -0
  343. package/wgsl/fade.wgsl +67 -0
  344. package/wgsl/fadecolor.wgsl +75 -0
  345. package/wgsl/fadegrayscale.wgsl +93 -0
  346. package/wgsl/flyeye.wgsl +105 -0
  347. package/wgsl/fragment.wgsl +227 -0
  348. package/wgsl/heart.wgsl +103 -0
  349. package/wgsl/hexagonalize.wgsl +238 -0
  350. package/wgsl/kaleidoscope.wgsl +124 -0
  351. package/wgsl/luma.wgsl +80 -0
  352. package/wgsl/luminance_melt.wgsl +299 -0
  353. package/wgsl/morph.wgsl +103 -0
  354. package/wgsl/mosaic_transition.wgsl +107 -0
  355. package/wgsl/multiply_blend.wgsl +96 -0
  356. package/wgsl/old_tv_lost_signal.wgsl +142 -0
  357. package/wgsl/parametric_glitch.wgsl +124 -0
  358. package/wgsl/perlin.wgsl +174 -0
  359. package/wgsl/pinwheel.wgsl +84 -0
  360. package/wgsl/pixelize.wgsl +105 -0
  361. package/wgsl/polar_function.wgsl +88 -0
  362. package/wgsl/powerKaleido.wgsl +254 -0
  363. package/wgsl/randomNoisex.wgsl +85 -0
  364. package/wgsl/randomsquares.wgsl +87 -0
  365. package/wgsl/ripple.wgsl +85 -0
  366. package/wgsl/rotateTransition.wgsl +85 -0
  367. package/wgsl/rotate_scale_fade.wgsl +138 -0
  368. package/wgsl/scale-in.wgsl +79 -0
  369. package/wgsl/splitSlideInHorizontal.wgsl +118 -0
  370. package/wgsl/splitSlideInOutHorizontal.wgsl +109 -0
  371. package/wgsl/splitSlideInOutVertical.wgsl +109 -0
  372. package/wgsl/splitSlideInVertical.wgsl +115 -0
  373. package/wgsl/splitSlideOutHorizontal.wgsl +102 -0
  374. package/wgsl/splitSlideOutVertical.wgsl +102 -0
  375. package/wgsl/squareswire.wgsl +115 -0
  376. package/wgsl/squeeze.wgsl +105 -0
  377. package/wgsl/static_wipe.wgsl +117 -0
  378. package/wgsl/swap.wgsl +218 -0
  379. package/wgsl/tangentMotionBlur.wgsl +503 -0
  380. package/wgsl/undulatingBurnOut.wgsl +181 -0
  381. package/wgsl/wind.wgsl +101 -0
  382. package/wgsl/windowblinds.wgsl +79 -0
  383. package/wgsl/windowslice.wgsl +80 -0
  384. package/wgsl/wipeDown.wgsl +77 -0
  385. package/wgsl/wipeLeft.wgsl +77 -0
  386. package/wgsl/wipeRight.wgsl +77 -0
  387. package/wgsl/wipeUp.wgsl +77 -0
  388. package/wgsl/x_axis_translation.wgsl +82 -0
  389. package/wgsl/zoomInOut.wgsl +94 -0
@@ -0,0 +1,29 @@
1
+ // parametric_glitch — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/parametric_glitch.glsl
2
+ // Author: Yoni Maltsman @friendlyspinach
3
+ // License: MIT
4
+ // Description: A crossfade with glitchy horizontal bands and color shifts
5
+ // Tags: glitch, blend
6
+
7
+
8
+
9
+ // @param Horizontal amplitude of the glitch
10
+ uniform float ampx; // =1.0
11
+ // @param Vertical amplitude of the glitch
12
+ uniform float ampy; //=1.0
13
+
14
+ vec4 transition (vec2 uv) {
15
+ vec4 from = getFromColor(uv);
16
+ vec4 to = getToColor(uv);
17
+ float r = from.r;
18
+ float g = from.g;
19
+ float b = from.b;
20
+ float sphere = r*r + g*g + b*b - 1.0; //3 to 1
21
+ float spiralX = cos(sphere - uv.x/(progress + .01));
22
+ float spiralY = sin(sphere - uv.y/(progress+.01));
23
+ vec2 st = uv;
24
+ st.x = fract(ampx*st.x*spiralX); //1 to 2
25
+ st.y = fract(ampy*st.y*spiralY);
26
+ vec2 diff = uv - st;
27
+ from = getFromColor(uv + progress*diff);
28
+ return mix(from, to, progress);
29
+ }
@@ -0,0 +1,66 @@
1
+ // perlin — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/perlin.glsl
2
+ // Author: Rich Harris
3
+ // License: MIT
4
+ // Description: The incoming image appears through blobs of Perlin noise
5
+ // Tags: noise, dissolve
6
+
7
+ // @param Scale of the noise; higher values make smaller blobs
8
+ uniform float scale; // = 4.0
9
+ // @param Softness of the blob edges
10
+ uniform float smoothness; // = 0.01
11
+
12
+ // @param Random seed
13
+ uniform float seed; // = 12.9898
14
+
15
+ // http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/
16
+ float random(vec2 co)
17
+ {
18
+ float a = seed;
19
+ float b = 78.233;
20
+ float c = 43758.5453;
21
+ float dt= dot(co.xy ,vec2(a,b));
22
+ float sn= mod(dt,3.14);
23
+ return fract(sin(sn) * c);
24
+ }
25
+
26
+ // 2D Noise based on Morgan McGuire @morgan3d
27
+ // https://www.shadertoy.com/view/4dS3Wd
28
+ float noise (in vec2 st) {
29
+ vec2 i = floor(st);
30
+ vec2 f = fract(st);
31
+
32
+ // Four corners in 2D of a tile
33
+ float a = random(i);
34
+ float b = random(i + vec2(1.0, 0.0));
35
+ float c = random(i + vec2(0.0, 1.0));
36
+ float d = random(i + vec2(1.0, 1.0));
37
+
38
+ // Smooth Interpolation
39
+
40
+ // Cubic Hermine Curve. Same as SmoothStep()
41
+ vec2 u = f*f*(3.0-2.0*f);
42
+ // u = smoothstep(0.,1.,f);
43
+
44
+ // Mix 4 coorners porcentages
45
+ return mix(a, b, u.x) +
46
+ (c - a)* u.y * (1.0 - u.x) +
47
+ (d - b) * u.x * u.y;
48
+ }
49
+
50
+ vec4 transition (vec2 uv) {
51
+ vec4 from = getFromColor(uv);
52
+ vec4 to = getToColor(uv);
53
+ float n = noise(uv * scale);
54
+
55
+ float p = mix(-smoothness, 1.0 + smoothness, progress);
56
+ float lower = p - smoothness;
57
+ float higher = p + smoothness;
58
+
59
+ float q = smoothstep(lower, higher, n);
60
+
61
+ return mix(
62
+ from,
63
+ to,
64
+ 1.0 - q
65
+ );
66
+ }
@@ -0,0 +1,20 @@
1
+ // pinwheel — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/pinwheel.glsl
2
+ // Author: Mr Speaker
3
+ // License: MIT
4
+ // Description: A spinning pinwheel reveals the incoming image
5
+ // Tags: pinwheel, radial, rotate
6
+
7
+ // @param Rotation speed
8
+ uniform float speed; // = 2.0
9
+
10
+ vec4 transition(vec2 uv) {
11
+
12
+ vec2 p = uv.xy / vec2(1.0).xy;
13
+
14
+ float circPos = atan(p.y - 0.5, p.x - 0.5) + progress * speed;
15
+ float modPos = mod(circPos, 3.1415 / 4.);
16
+ float signed = sign(progress - modPos);
17
+
18
+ return mix(getToColor(p), getFromColor(p), step(signed, 0.5));
19
+
20
+ }
@@ -0,0 +1,21 @@
1
+ // pixelize — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/pixelize.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: Both images pixelate, crossfade, then sharpen again
5
+ // Tags: pixelate, blend
6
+ // forked from https://gist.github.com/benraziel/c528607361d90a072e98
7
+
8
+ // minimum number of squares (when the effect is at its higher level)
9
+ // @param Number of squares at the strongest pixelation
10
+ uniform ivec2 squaresMin; // = ivec2(20)
11
+ // zero disable the stepping
12
+ // @param Number of pixelation steps; 0 for a continuous effect
13
+ uniform int steps; // = 50
14
+
15
+ vec4 transition(vec2 uv) {
16
+ float d = min(progress, 1.0 - progress);
17
+ float dist = steps>0 ? ceil(d * float(steps)) / float(steps) : d;
18
+ vec2 squareSize = 2.0 * dist / vec2(squaresMin);
19
+ vec2 p = dist>0.0 ? (floor(uv / squareSize) + 0.5) * squareSize : uv;
20
+ return mix(getFromColor(p), getToColor(p), progress);
21
+ }
@@ -0,0 +1,24 @@
1
+ // polar_function — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/polar_function.glsl
2
+ // Author: Fernando Kuteken
3
+ // License: MIT
4
+ // Description: A flower shape with several petals grows to reveal the incoming image
5
+ // Tags: shape, wipe, polar
6
+
7
+ #define PI 3.14159265359
8
+
9
+ // @param Number of petals
10
+ uniform int segments; // = 5
11
+
12
+ vec4 transition (vec2 uv) {
13
+
14
+ float angle = atan(uv.y - 0.5, uv.x - 0.5) - 0.5 * PI;
15
+ float normalized = (angle + 1.5 * PI) * (2.0 * PI);
16
+
17
+ float radius = (cos(float(segments) * angle) + 4.0) / 4.0;
18
+ float difference = length(uv - vec2(0.5, 0.5));
19
+
20
+ if (difference > radius * progress)
21
+ return getFromColor(uv);
22
+ else
23
+ return getToColor(uv);
24
+ }
@@ -0,0 +1,57 @@
1
+ // powerKaleido — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/powerKaleido.glsl
2
+ // Name: Power Kaleido
3
+ // Author: Boundless
4
+ // License: MIT
5
+ // Description: The image folds into an animated kaleidoscope before revealing the incoming one
6
+ // Tags: kaleidoscope, distort
7
+ #define PI 3.14159265358979
8
+ const float rad = 120.; // change this value to get different mirror effects
9
+ const float deg = rad / 180. * PI;
10
+ uniform float scale; // = 2.0
11
+ uniform float z; // = 1.5
12
+ uniform float speed; // = 5.
13
+ vec2 refl(vec2 p,vec2 o,vec2 n)
14
+ {
15
+ return 2.0*o+2.0*n*dot(p-o,n)-p;
16
+ }
17
+
18
+ vec2 rot(vec2 p, vec2 o, float a)
19
+ {
20
+ float s = sin(a);
21
+ float c = cos(a);
22
+ return o + mat2(c, -s, s, c) * (p - o);
23
+ }
24
+
25
+ vec4 mainImage(vec2 uv)
26
+ {
27
+ float dist = scale / 10.;
28
+ vec2 uv0 = uv;
29
+ uv -= 0.5;
30
+ uv.x *= ratio;
31
+ uv *= z;
32
+ uv = rot(uv, vec2(0.0), progress*speed);
33
+ // uv.x = fract(uv.x/l/3.0)*l*3.0;
34
+ float theta = progress*6.+PI/.5;
35
+ for(int iter = 0; iter < 10; iter++) {
36
+ for(float i = 0.; i < 2. * PI; i+=deg) {
37
+ float ts = sign(asin(cos(i))) == 1.0 ? 1.0 : 0.0;
38
+ if(((ts == 1.0) && (uv.y-dist*cos(i) > tan(i)*(uv.x+dist*+sin(i)))) || ((ts == 0.0) && (uv.y-dist*cos(i) < tan(i)*(uv.x+dist*+sin(i))))) {
39
+ uv = refl(vec2(uv.x+sin(i)*dist*2.,uv.y-cos(i)*dist*2.), vec2(0.,0.), vec2(cos(i),sin(i)));
40
+ }
41
+ }
42
+ }
43
+ uv += 0.5;
44
+ uv = rot(uv, vec2(0.5), progress*-speed);
45
+ uv -= 0.5;
46
+ uv.x /= ratio;
47
+ uv += 0.5;
48
+ uv = 2.*abs(uv/2.-floor(uv/2.+0.5));
49
+ vec2 uvMix = mix(uv,uv0,cos(progress*PI*2.)/2.+0.5);
50
+ vec4 color = mix(getFromColor(uvMix),getToColor(uvMix),cos((progress-1.)*PI)/2.+0.5);
51
+ return color;
52
+
53
+ }
54
+ vec4 transition (vec2 uv) {
55
+ vec4 color = mainImage(uv);
56
+ return color;
57
+ }
@@ -0,0 +1,15 @@
1
+ // randomNoisex — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/randomNoisex.glsl
2
+ // Author: towrabbit
3
+ // License: MIT
4
+ // Description: The incoming image appears pixel by pixel in random noise
5
+ // Tags: dissolve, noise
6
+
7
+ float random (vec2 st) {
8
+ return fract(sin(dot(st.xy,vec2(12.9898,78.233)))*43758.5453123);
9
+ }
10
+ vec4 transition (vec2 uv) {
11
+ vec4 leftSide = getFromColor(uv);
12
+ vec4 rightSide = getToColor(uv);
13
+ float uvz = floor(random(uv)+progress);
14
+ return mix(leftSide,rightSide,uvz);
15
+ }
@@ -0,0 +1,20 @@
1
+ // randomsquares — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/randomsquares.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: The incoming image appears in random squares
5
+ // Tags: squares, grid, dissolve
6
+
7
+ // @param Number of squares (columns, rows)
8
+ uniform ivec2 size; // = ivec2(10, 10)
9
+ // @param Softness of each square's switch
10
+ uniform float smoothness; // = 0.5
11
+
12
+ float rand (vec2 co) {
13
+ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
14
+ }
15
+
16
+ vec4 transition(vec2 p) {
17
+ float r = rand(floor(vec2(size) * p));
18
+ float m = smoothstep(0.0, -smoothness, r - (progress * (1.0 + smoothness)));
19
+ return mix(getFromColor(p), getToColor(p), m);
20
+ }
@@ -0,0 +1,20 @@
1
+ // ripple — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ripple.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: Ripples spread from the center while crossfading
5
+ // Tags: ripple, wave, blend
6
+ // @param Frequency of the ripples
7
+ uniform float amplitude; // = 100.0
8
+ // @param Speed of the ripples
9
+ uniform float speed; // = 50.0
10
+
11
+ vec4 transition (vec2 uv) {
12
+ vec2 dir = uv - vec2(.5);
13
+ float dist = length(dir);
14
+ vec2 offset = dir * (sin(progress * dist * amplitude - progress * speed) + .5) / 30. * progress;
15
+ return mix(
16
+ getFromColor(uv + offset),
17
+ getToColor(uv),
18
+ smoothstep(0.2, 1.0, progress)
19
+ );
20
+ }
@@ -0,0 +1,22 @@
1
+ // rotateTransition — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/rotateTransition.glsl
2
+ // Author: haiyoucuv
3
+ // License: MIT
4
+ // Description: The images spin around the center while crossfading
5
+ // Tags: rotate, spin, blend
6
+
7
+ #define PI 3.1415926
8
+
9
+ vec2 rotate2D(in vec2 uv, in float angle){
10
+
11
+ return uv * mat2(cos(angle), -sin(angle), sin(angle), cos(angle));
12
+ }
13
+ vec4 transition (vec2 uv) {
14
+
15
+ vec2 p = fract(rotate2D(uv - 0.5, progress * PI * 2.0) + 0.5);
16
+
17
+ return mix(
18
+ getFromColor(p),
19
+ getToColor(p),
20
+ progress
21
+ );
22
+ }
@@ -0,0 +1,39 @@
1
+ // rotate_scale_fade — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/rotate_scale_fade.glsl
2
+ // Author: Fernando Kuteken
3
+ // License: MIT
4
+ // Description: The outgoing image spins and zooms while fading to the incoming one, over a background color
5
+ // Tags: rotate, zoom, fade
6
+
7
+ #define PI 3.14159265359
8
+
9
+ // @param Center of the rotation
10
+ uniform vec2 center; // = vec2(0.5, 0.5)
11
+ // @param Number of turns
12
+ uniform float rotations; // = 1
13
+ // @param Maximum zoom
14
+ uniform float scale; // = 8
15
+ // @color Background color
16
+ uniform vec4 backColor; // = vec4(0.15, 0.15, 0.15, 1.0)
17
+
18
+ vec4 transition (vec2 uv) {
19
+
20
+ vec2 difference = uv - center;
21
+ vec2 dir = normalize(difference);
22
+ float dist = length(difference);
23
+
24
+ float angle = 2.0 * PI * rotations * progress;
25
+
26
+ float c = cos(angle);
27
+ float s = sin(angle);
28
+
29
+ float currentScale = mix(scale, 1.0, 2.0 * abs(progress - 0.5));
30
+
31
+ vec2 rotatedDir = vec2(dir.x * c - dir.y * s, dir.x * s + dir.y * c);
32
+ vec2 rotatedUv = center + rotatedDir * dist / currentScale;
33
+
34
+ if (rotatedUv.x < 0.0 || rotatedUv.x > 1.0 ||
35
+ rotatedUv.y < 0.0 || rotatedUv.y > 1.0)
36
+ return backColor;
37
+
38
+ return mix(getFromColor(rotatedUv), getToColor(rotatedUv), progress);
39
+ }
@@ -0,0 +1,18 @@
1
+ // scale-in — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/scale-in.glsl
2
+ // Author: haiyoucuv
3
+ // License: MIT
4
+ // Description: The incoming image scales in from the center while fading in
5
+ // Tags: zoom, fade
6
+
7
+ vec4 scale(in vec2 uv){
8
+ uv = 0.5 + (uv - 0.5) * progress;
9
+ return getToColor(uv);
10
+ }
11
+
12
+ vec4 transition (vec2 uv) {
13
+ return mix(
14
+ getFromColor(uv),
15
+ scale(uv),
16
+ progress
17
+ );
18
+ }
@@ -0,0 +1,26 @@
1
+ // splitSlideInHorizontal — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideInHorizontal.glsl
2
+ // Author: OllyOllyOlly
3
+ // License: MIT
4
+ // Description: The incoming image slides in as two halves moving horizontally in opposite directions
5
+ // Tags: slide, split, horizontal
6
+
7
+ // @param Swap the directions of the halves
8
+ uniform bool reverse; // = false
9
+
10
+ const vec2 boundMin = vec2(0.0, 0.0);
11
+ const vec2 boundMax = vec2(1.0, 1.0);
12
+
13
+ bool inBounds (vec2 p) {
14
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
15
+ }
16
+
17
+ vec4 transition (vec2 uv) {
18
+ float modifier = reverse ? -1.0 : 1.0;
19
+ vec2 toP = (uv.y > 0.5) ?
20
+ vec2((uv.x - (progress * modifier)) + modifier, uv.y) :
21
+ vec2((uv.x + (progress * modifier)) - modifier, uv.y);
22
+
23
+ vec2 fromP = uv;
24
+
25
+ return inBounds(toP) ? getToColor(toP) : getFromColor(fromP);
26
+ }
@@ -0,0 +1,23 @@
1
+ // splitSlideInOutHorizontal — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideInOutHorizontal.glsl
2
+ // Author: OllyOllyOlly
3
+ // License: MIT
4
+ // Description: The halves of both images slide horizontally in opposite directions, out and in at once
5
+ // Tags: slide, split, horizontal
6
+
7
+ // @param Swap the directions of the halves
8
+ uniform bool reverse; // = false
9
+
10
+ const vec2 boundMin = vec2(0.0, 0.0);
11
+ const vec2 boundMax = vec2(1.0, 1.0);
12
+
13
+ bool inBounds (vec2 p) {
14
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
15
+ }
16
+
17
+ vec4 transition (vec2 uv) {
18
+ float modifier = (uv.y > 0.5 ? 1.0 : -1.0) * (reverse ? -1.0 : 1.0) ;
19
+ vec2 fromP = vec2(uv.x + (progress * modifier), uv.y);
20
+ vec2 toP = vec2((uv.x + (progress * modifier)) - modifier, uv.y);
21
+
22
+ return inBounds(fromP) ? getFromColor(fromP) : getToColor(toP);
23
+ }
@@ -0,0 +1,23 @@
1
+ // splitSlideInOutVertical — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideInOutVertical.glsl
2
+ // Author: OllyOllyOlly
3
+ // License: MIT
4
+ // Description: The halves of both images slide vertically in opposite directions, out and in at once
5
+ // Tags: slide, split, vertical
6
+
7
+ // @param Swap the directions of the halves
8
+ uniform bool reverse; // = false
9
+
10
+ const vec2 boundMin = vec2(0.0, 0.0);
11
+ const vec2 boundMax = vec2(1.0, 1.0);
12
+
13
+ bool inBounds (vec2 p) {
14
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
15
+ }
16
+
17
+ vec4 transition (vec2 uv) {
18
+ float modifier = (uv.x > 0.5 ? 1.0 : -1.0) * (reverse ? -1.0 : 1.0) ;
19
+ vec2 fromP = vec2(uv.x, uv.y + (progress * modifier));
20
+ vec2 toP = vec2(uv.x, (uv.y + (progress * modifier)) - modifier);
21
+
22
+ return inBounds(fromP) ? getFromColor(fromP) : getToColor(toP);
23
+ }
@@ -0,0 +1,24 @@
1
+ // splitSlideInVertical — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideInVertical.glsl
2
+ // Author: OllyOllyOlly
3
+ // License: MIT
4
+ // Description: The incoming image slides in as two halves moving vertically in opposite directions
5
+ // Tags: slide, split, vertical
6
+
7
+ // @param Swap the directions of the halves
8
+ uniform bool reverse; // = false
9
+
10
+ const vec2 boundMin = vec2(0.0, 0.0);
11
+ const vec2 boundMax = vec2(1.0, 1.0);
12
+
13
+ bool inBounds (vec2 p) {
14
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
15
+ }
16
+
17
+ vec4 transition (vec2 uv) {
18
+ float modifier = reverse ? -1.0 : 1.0;
19
+ vec2 p = (uv.x > 0.5) ?
20
+ vec2(uv.x, (uv.y - (progress * modifier)) + modifier) :
21
+ vec2(uv.x, (uv.y + (progress * modifier)) - modifier);
22
+
23
+ return inBounds(p) ? getToColor(p) : getFromColor(uv);
24
+ }
@@ -0,0 +1,22 @@
1
+ // splitSlideOutHorizontal — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideOutHorizontal.glsl
2
+ // Author: OllyOllyOlly
3
+ // License: MIT
4
+ // Description: The outgoing image slides out as two halves moving horizontally in opposite directions
5
+ // Tags: slide, split, horizontal
6
+
7
+ // @param Swap the directions of the halves
8
+ uniform bool reverse; // = false
9
+
10
+ const vec2 boundMin = vec2(0.0, 0.0);
11
+ const vec2 boundMax = vec2(1.0, 1.0);
12
+
13
+ bool inBounds (vec2 p) {
14
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
15
+ }
16
+
17
+ vec4 transition (vec2 uv) {
18
+ float modifier = (uv.y > 0.5 ? 1.0 : -1.0) * (reverse ? -1.0 : 1.0) ;
19
+ vec2 p = vec2(uv.x + (progress * modifier), uv.y);
20
+
21
+ return inBounds(p) ? getFromColor(p) : getToColor(uv);
22
+ }
@@ -0,0 +1,22 @@
1
+ // splitSlideOutVertical — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/splitSlideOutVertical.glsl
2
+ // Author: OllyOllyOlly
3
+ // License: MIT
4
+ // Description: The outgoing image slides out as two halves moving vertically in opposite directions
5
+ // Tags: slide, split, vertical
6
+
7
+ // @param Swap the directions of the halves
8
+ uniform bool reverse; // = false
9
+
10
+ const vec2 boundMin = vec2(0.0, 0.0);
11
+ const vec2 boundMax = vec2(1.0, 1.0);
12
+
13
+ bool inBounds (vec2 p) {
14
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
15
+ }
16
+
17
+ vec4 transition (vec2 uv) {
18
+ float modifier = (uv.x > 0.5 ? 1.0 : -1.0) * (reverse ? -1.0 : 1.0) ;
19
+ vec2 p = vec2(uv.x, uv.y + (progress * modifier));
20
+
21
+ return inBounds(p) ? getFromColor(p) : getToColor(uv);
22
+ }
@@ -0,0 +1,26 @@
1
+ // squareswire — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/squareswire.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: Squares grow along a diagonal sweep to reveal the incoming image
5
+ // Tags: squares, grid, wipe, directional
6
+
7
+ // @param Number of squares (columns, rows)
8
+ uniform ivec2 squares;// = ivec2(10,10)
9
+ // @param Direction of the sweep
10
+ uniform vec2 direction;// = vec2(1.0, -0.5)
11
+ // @param Softness of the sweep
12
+ uniform float smoothness; // = 1.6
13
+
14
+ const vec2 center = vec2(0.5, 0.5);
15
+ vec4 transition (vec2 p) {
16
+ vec2 v = normalize(direction);
17
+ v /= abs(v.x)+abs(v.y);
18
+ float d = v.x * center.x + v.y * center.y;
19
+ float offset = smoothness;
20
+ float pr = smoothstep(-offset, 0.0, v.x * p.x + v.y * p.y - (d-0.5+progress*(1.+offset)));
21
+ vec2 squarep = fract(p*vec2(squares));
22
+ vec2 squaremin = vec2(pr/2.0);
23
+ vec2 squaremax = vec2(1.0 - pr/2.0);
24
+ float a = (1.0 - step(progress, 0.0)) * step(squaremin.x, squarep.x) * step(squaremin.y, squarep.y) * step(squarep.x, squaremax.x) * step(squarep.y, squaremax.y);
25
+ return mix(getFromColor(p), getToColor(p), a);
26
+ }
@@ -0,0 +1,23 @@
1
+ // squeeze — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/squeeze.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: The outgoing image is squeezed into a line with color separation, revealing the incoming one
5
+ // Tags: squeeze, chromatic, vertical
6
+
7
+ // @param Amount of color separation
8
+ uniform float colorSeparation; // = 0.04
9
+
10
+ vec4 transition (vec2 uv) {
11
+ float y = 0.5 + (uv.y-0.5) / (1.0-progress);
12
+ if (y < 0.0 || y > 1.0) {
13
+ return getToColor(uv);
14
+ }
15
+ else {
16
+ vec2 fp = vec2(uv.x, y);
17
+ vec2 off = progress * vec2(0.0, colorSeparation);
18
+ vec4 c = getFromColor(fp);
19
+ vec4 cn = getFromColor(fp - off);
20
+ vec4 cp = getFromColor(fp + off);
21
+ return vec4(cn.r, c.g, cp.b, c.a);
22
+ }
23
+ }
@@ -0,0 +1,39 @@
1
+ // static_wipe — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/static_wipe.glsl
2
+ // Author: Ben Lucas
3
+ // License: MIT
4
+ // Description: A wipe from top to bottom with a band of TV static at its edge
5
+ // Tags: wipe, static, noise, vertical
6
+
7
+ #define PI 3.14159265359
8
+
9
+ float rnd (vec2 st) {
10
+ return fract(sin(dot(st.xy,
11
+ vec2(10,70)))*
12
+ 12345.5453123);
13
+ }
14
+
15
+ // @param Wipe from top to bottom; false wipes from bottom to top
16
+ uniform bool u_transitionUpToDown; // = true
17
+ // @param Maximum height of the static band
18
+ uniform float u_max_static_span; // = 0.5
19
+
20
+ vec4 transition (vec2 uv) {
21
+
22
+
23
+ float span = u_max_static_span*pow(sin(PI*progress),0.5);
24
+
25
+ float transitionEdge = u_transitionUpToDown ? 1.0-uv.y : uv.y;
26
+ float mixRatio = 1.0 - step(progress, transitionEdge);
27
+
28
+ vec4 transitionMix = mix(
29
+ getFromColor(uv),
30
+ getToColor(uv),
31
+ mixRatio
32
+ );
33
+
34
+ float noiseEnvelope = smoothstep(progress-span, progress, transitionEdge) * (1.0 - smoothstep(progress, progress + span, transitionEdge));
35
+ vec4 noise = vec4(vec3(rnd(uv*(1.0+progress))), 1.0);
36
+
37
+
38
+ return mix(transitionMix, noise, noiseEnvelope);
39
+ }
@@ -0,0 +1,64 @@
1
+ // swap — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/swap.glsl
2
+ // Author: gre
3
+ // License: MIT
4
+ // Description: The two images swap places in 3D, with a floor reflection
5
+ // Tags: 3d, swap, reflection
6
+ // General parameters
7
+ // @param Strength of the reflection
8
+ uniform float reflection; // = 0.4
9
+ // @param Amount of perspective
10
+ uniform float perspective; // = 0.2
11
+ uniform float depth; // = 3.0
12
+
13
+ const vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
14
+ const vec2 boundMin = vec2(0.0, 0.0);
15
+ const vec2 boundMax = vec2(1.0, 1.0);
16
+
17
+ bool inBounds (vec2 p) {
18
+ return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
19
+ }
20
+
21
+ vec2 project (vec2 p) {
22
+ return p * vec2(1.0, -1.2) + vec2(0.0, -0.02);
23
+ }
24
+
25
+ vec4 bgColor (vec2 p, vec2 pfr, vec2 pto) {
26
+ vec4 c = black;
27
+ pfr = project(pfr);
28
+ if (inBounds(pfr)) {
29
+ c += mix(black, getFromColor(pfr), reflection * mix(1.0, 0.0, pfr.y));
30
+ }
31
+ pto = project(pto);
32
+ if (inBounds(pto)) {
33
+ c += mix(black, getToColor(pto), reflection * mix(1.0, 0.0, pto.y));
34
+ }
35
+ return c;
36
+ }
37
+
38
+ vec4 transition(vec2 p) {
39
+ vec2 pfr, pto = vec2(-1.);
40
+
41
+ float size = mix(1.0, depth, progress);
42
+ float persp = perspective * progress;
43
+ pfr = (p + vec2(-0.0, -0.5)) * vec2(size/(1.0-perspective*progress), size/(1.0-size*persp*p.x)) + vec2(0.0, 0.5);
44
+
45
+ size = mix(1.0, depth, 1.-progress);
46
+ persp = perspective * (1.-progress);
47
+ pto = (p + vec2(-1.0, -0.5)) * vec2(size/(1.0-perspective*(1.0-progress)), size/(1.0-size*persp*(0.5-p.x))) + vec2(1.0, 0.5);
48
+
49
+ if (progress < 0.5) {
50
+ if (inBounds(pfr)) {
51
+ return getFromColor(pfr);
52
+ }
53
+ if (inBounds(pto)) {
54
+ return getToColor(pto);
55
+ }
56
+ }
57
+ if (inBounds(pto)) {
58
+ return getToColor(pto);
59
+ }
60
+ if (inBounds(pfr)) {
61
+ return getFromColor(pfr);
62
+ }
63
+ return bgColor(p, pfr, pto);
64
+ }