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.
- package/README.md +78 -0
- package/compatibility.json +2070 -0
- package/glsl3/AdvancedMosaic.glsl +21 -0
- package/glsl3/BlockDissolve.glsl +16 -0
- package/glsl3/BookFlip.glsl +37 -0
- package/glsl3/Bounce.glsl +35 -0
- package/glsl3/BowTieHorizontal.glsl +123 -0
- package/glsl3/BowTieVertical.glsl +117 -0
- package/glsl3/BowTieWithParameter.glsl +74 -0
- package/glsl3/Box.glsl +33 -0
- package/glsl3/ButterflyWaveScrawler.glsl +33 -0
- package/glsl3/CircleCrop.glsl +20 -0
- package/glsl3/ColourDistance.glsl +19 -0
- package/glsl3/CrazyParametricFun.glsl +20 -0
- package/glsl3/CrossZoom.glsl +68 -0
- package/glsl3/DefocusBlur.glsl +47 -0
- package/glsl3/Directional.glsl +18 -0
- package/glsl3/DirectionalScaled.glsl +35 -0
- package/glsl3/DoomScreenTransition.glsl +62 -0
- package/glsl3/Dreamy.glsl +14 -0
- package/glsl3/DreamyZoom.glsl +43 -0
- package/glsl3/Drop_Zone_Flicker.glsl +159 -0
- package/glsl3/EdgeTransition.glsl +50 -0
- package/glsl3/FilmBurn.glsl +63 -0
- package/glsl3/Fold.glsl +12 -0
- package/glsl3/GlitchDisplace.glsl +78 -0
- package/glsl3/GlitchMemories.glsl +17 -0
- package/glsl3/GridFlip.glsl +77 -0
- package/glsl3/HSVfade.glsl +29 -0
- package/glsl3/HorizontalClose.glsl +16 -0
- package/glsl3/HorizontalOpen.glsl +18 -0
- package/glsl3/InvertedPageCurl.glsl +228 -0
- package/glsl3/LeftRight.glsl +28 -0
- package/glsl3/LinearBlur.glsl +30 -0
- package/glsl3/Mosaic.glsl +45 -0
- package/glsl3/Overexposure.glsl +25 -0
- package/glsl3/PolkaDotsCurtain.glsl +14 -0
- package/glsl3/PuzzleRight.glsl +57 -0
- package/glsl3/Radial.glsl +19 -0
- package/glsl3/Rectangle.glsl +29 -0
- package/glsl3/RectangleCrop.glsl +30 -0
- package/glsl3/Revolve_Left.glsl +98 -0
- package/glsl3/Rolls.glsl +42 -0
- package/glsl3/RotateScaleVanish.glsl +42 -0
- package/glsl3/SimpleFlip.glsl +14 -0
- package/glsl3/SimpleZoom.glsl +20 -0
- package/glsl3/SimpleZoomOut.glsl +23 -0
- package/glsl3/Slides.glsl +41 -0
- package/glsl3/StarWipe.glsl +51 -0
- package/glsl3/StaticFade.glsl +47 -0
- package/glsl3/StereoViewer.glsl +214 -0
- package/glsl3/StripDatamoshGlitch.glsl +187 -0
- package/glsl3/Swirl.glsl +34 -0
- package/glsl3/TVStatic.glsl +29 -0
- package/glsl3/TilesWave.glsl +63 -0
- package/glsl3/TopBottom.glsl +27 -0
- package/glsl3/VerticalClose.glsl +16 -0
- package/glsl3/VerticalOpen.glsl +17 -0
- package/glsl3/WaterDrop.glsl +21 -0
- package/glsl3/ZoomInCircles.glsl +40 -0
- package/glsl3/ZoomLeftWipe.glsl +36 -0
- package/glsl3/ZoomRigthWipe.glsl +36 -0
- package/glsl3/angular.glsl +25 -0
- package/glsl3/burn.glsl +14 -0
- package/glsl3/burn0.glsl +55 -0
- package/glsl3/cannabisleaf.glsl +18 -0
- package/glsl3/chessboard.glsl +28 -0
- package/glsl3/circle.glsl +24 -0
- package/glsl3/circleopen.glsl +18 -0
- package/glsl3/colorphase.glsl +19 -0
- package/glsl3/coord-from-in.glsl +18 -0
- package/glsl3/crosshatch.glsl +20 -0
- package/glsl3/crosswarp.glsl +10 -0
- package/glsl3/cube.glsl +71 -0
- package/glsl3/directional-easing.glsl +19 -0
- package/glsl3/directionalwarp.glsl +20 -0
- package/glsl3/directionalwipe.glsl +22 -0
- package/glsl3/displacement.glsl +26 -0
- package/glsl3/dissolve.glsl +54 -0
- package/glsl3/doorway.glsl +55 -0
- package/glsl3/fade.glsl +13 -0
- package/glsl3/fadecolor.glsl +15 -0
- package/glsl3/fadegrayscale.glsl +21 -0
- package/glsl3/flyeye.glsl +20 -0
- package/glsl3/fragment.glsl +54 -0
- package/glsl3/heart.glsl +19 -0
- package/glsl3/hexagonalize.glsl +78 -0
- package/glsl3/kaleidoscope.glsl +25 -0
- package/glsl3/luma.glsl +15 -0
- package/glsl3/luminance_melt.glsl +131 -0
- package/glsl3/morph.glsl +20 -0
- package/glsl3/mosaic_transition.glsl +20 -0
- package/glsl3/multiply_blend.glsl +19 -0
- package/glsl3/old_tv_lost_signal.glsl +51 -0
- package/glsl3/parametric_glitch.glsl +29 -0
- package/glsl3/perlin.glsl +66 -0
- package/glsl3/pinwheel.glsl +20 -0
- package/glsl3/pixelize.glsl +21 -0
- package/glsl3/polar_function.glsl +24 -0
- package/glsl3/powerKaleido.glsl +57 -0
- package/glsl3/randomNoisex.glsl +15 -0
- package/glsl3/randomsquares.glsl +20 -0
- package/glsl3/ripple.glsl +20 -0
- package/glsl3/rotateTransition.glsl +22 -0
- package/glsl3/rotate_scale_fade.glsl +39 -0
- package/glsl3/scale-in.glsl +18 -0
- package/glsl3/splitSlideInHorizontal.glsl +26 -0
- package/glsl3/splitSlideInOutHorizontal.glsl +23 -0
- package/glsl3/splitSlideInOutVertical.glsl +23 -0
- package/glsl3/splitSlideInVertical.glsl +24 -0
- package/glsl3/splitSlideOutHorizontal.glsl +22 -0
- package/glsl3/splitSlideOutVertical.glsl +22 -0
- package/glsl3/squareswire.glsl +26 -0
- package/glsl3/squeeze.glsl +23 -0
- package/glsl3/static_wipe.glsl +39 -0
- package/glsl3/swap.glsl +64 -0
- package/glsl3/tangentMotionBlur.glsl +139 -0
- package/glsl3/undulatingBurnOut.glsl +56 -0
- package/glsl3/wind.glsl +25 -0
- package/glsl3/windowblinds.glsl +18 -0
- package/glsl3/windowslice.glsl +16 -0
- package/glsl3/wipeDown.glsl +12 -0
- package/glsl3/wipeLeft.glsl +12 -0
- package/glsl3/wipeRight.glsl +12 -0
- package/glsl3/wipeUp.glsl +12 -0
- package/glsl3/x_axis_translation.glsl +21 -0
- package/glsl3/zoomInOut.glsl +20 -0
- package/index.d.ts +61 -0
- package/layouts.json +2956 -0
- package/llms-full.txt +1707 -0
- package/llms.txt +153 -0
- package/msl/AdvancedMosaic.metal +136 -0
- package/msl/BlockDissolve.metal +108 -0
- package/msl/BookFlip.metal +191 -0
- package/msl/Bounce.metal +128 -0
- package/msl/BowTieHorizontal.metal +375 -0
- package/msl/BowTieVertical.metal +375 -0
- package/msl/BowTieWithParameter.metal +361 -0
- package/msl/Box.metal +204 -0
- package/msl/ButterflyWaveScrawler.metal +190 -0
- package/msl/CircleCrop.metal +117 -0
- package/msl/ColourDistance.metal +110 -0
- package/msl/CrazyParametricFun.metal +139 -0
- package/msl/CrossZoom.metal +274 -0
- package/msl/DefocusBlur.metal +297 -0
- package/msl/Directional.metal +107 -0
- package/msl/DirectionalScaled.metal +147 -0
- package/msl/DoomScreenTransition.metal +212 -0
- package/msl/Dreamy.metal +133 -0
- package/msl/DreamyZoom.metal +182 -0
- package/msl/Drop_Zone_Flicker.metal +561 -0
- package/msl/EdgeTransition.metal +277 -0
- package/msl/FilmBurn.metal +425 -0
- package/msl/Fold.metal +110 -0
- package/msl/GlitchDisplace.metal +374 -0
- package/msl/GlitchMemories.metal +146 -0
- package/msl/GridFlip.metal +285 -0
- package/msl/HSVfade.metal +161 -0
- package/msl/HorizontalClose.metal +100 -0
- package/msl/HorizontalOpen.metal +103 -0
- package/msl/InvertedPageCurl.metal +762 -0
- package/msl/LeftRight.metal +138 -0
- package/msl/LinearBlur.metal +169 -0
- package/msl/Mosaic.metal +212 -0
- package/msl/Overexposure.metal +130 -0
- package/msl/PolkaDotsCurtain.metal +112 -0
- package/msl/PuzzleRight.metal +262 -0
- package/msl/Radial.metal +102 -0
- package/msl/Rectangle.metal +129 -0
- package/msl/RectangleCrop.metal +127 -0
- package/msl/Revolve_Left.metal +363 -0
- package/msl/Rolls.metal +209 -0
- package/msl/RotateScaleVanish.metal +227 -0
- package/msl/SimpleFlip.metal +110 -0
- package/msl/SimpleZoom.metal +116 -0
- package/msl/SimpleZoomOut.metal +127 -0
- package/msl/Slides.metal +244 -0
- package/msl/StarWipe.metal +204 -0
- package/msl/StaticFade.metal +193 -0
- package/msl/StereoViewer.metal +707 -0
- package/msl/StripDatamoshGlitch.metal +828 -0
- package/msl/Swirl.metal +152 -0
- package/msl/TVStatic.metal +136 -0
- package/msl/TilesWave.metal +290 -0
- package/msl/TopBottom.metal +138 -0
- package/msl/VerticalClose.metal +100 -0
- package/msl/VerticalOpen.metal +103 -0
- package/msl/WaterDrop.metal +126 -0
- package/msl/ZoomInCircles.metal +169 -0
- package/msl/ZoomLeftWipe.metal +152 -0
- package/msl/ZoomRigthWipe.metal +152 -0
- package/msl/angular.metal +111 -0
- package/msl/burn.metal +103 -0
- package/msl/burn0.metal +236 -0
- package/msl/cannabisleaf.metal +120 -0
- package/msl/chessboard.metal +144 -0
- package/msl/circle.metal +115 -0
- package/msl/circleopen.metal +124 -0
- package/msl/colorphase.metal +106 -0
- package/msl/coord-from-in.metal +111 -0
- package/msl/crosshatch.metal +126 -0
- package/msl/crosswarp.metal +103 -0
- package/msl/cube.metal +259 -0
- package/msl/directional-easing.metal +111 -0
- package/msl/directionalwarp.metal +121 -0
- package/msl/directionalwipe.metal +120 -0
- package/msl/displacement.metal +129 -0
- package/msl/dissolve.metal +146 -0
- package/msl/doorway.metal +210 -0
- package/msl/fade.metal +95 -0
- package/msl/fadecolor.metal +104 -0
- package/msl/fadegrayscale.metal +123 -0
- package/msl/flyeye.metal +133 -0
- package/msl/fragment.metal +276 -0
- package/msl/heart.metal +134 -0
- package/msl/hexagonalize.metal +274 -0
- package/msl/kaleidoscope.metal +157 -0
- package/msl/luma.metal +113 -0
- package/msl/luminance_melt.metal +337 -0
- package/msl/morph.metal +131 -0
- package/msl/mosaic_transition.metal +137 -0
- package/msl/multiply_blend.metal +127 -0
- package/msl/old_tv_lost_signal.metal +172 -0
- package/msl/parametric_glitch.metal +152 -0
- package/msl/perlin.metal +206 -0
- package/msl/pinwheel.metal +112 -0
- package/msl/pixelize.metal +134 -0
- package/msl/polar_function.metal +116 -0
- package/msl/powerKaleido.metal +304 -0
- package/msl/randomNoisex.metal +115 -0
- package/msl/randomsquares.metal +118 -0
- package/msl/ripple.metal +113 -0
- package/msl/rotateTransition.metal +116 -0
- package/msl/rotate_scale_fade.metal +167 -0
- package/msl/scale-in.metal +111 -0
- package/msl/splitSlideInHorizontal.metal +147 -0
- package/msl/splitSlideInOutHorizontal.metal +138 -0
- package/msl/splitSlideInOutVertical.metal +138 -0
- package/msl/splitSlideInVertical.metal +144 -0
- package/msl/splitSlideOutHorizontal.metal +131 -0
- package/msl/splitSlideOutVertical.metal +131 -0
- package/msl/squareswire.metal +144 -0
- package/msl/squeeze.metal +133 -0
- package/msl/static_wipe.metal +147 -0
- package/msl/swap.metal +256 -0
- package/msl/tangentMotionBlur.metal +583 -0
- package/msl/undulatingBurnOut.metal +217 -0
- package/msl/wind.metal +131 -0
- package/msl/windowblinds.metal +107 -0
- package/msl/windowslice.metal +108 -0
- package/msl/wipeDown.metal +105 -0
- package/msl/wipeLeft.metal +105 -0
- package/msl/wipeRight.metal +105 -0
- package/msl/wipeUp.metal +105 -0
- package/msl/x_axis_translation.metal +110 -0
- package/msl/zoomInOut.metal +125 -0
- package/package.json +1 -1
- package/skills/gl-transitions/SKILL.md +46 -0
- package/skills/gl-transitions/references/catalog.md +224 -0
- package/skills/gl-transitions/references/skia.md +118 -0
- package/skills/gl-transitions/references/video.md +71 -0
- package/skills/gl-transitions/references/webgl.md +122 -0
- package/sksl/index.d.ts +4 -0
- package/sksl/index.js +1 -0
- package/wgsl/AdvancedMosaic.wgsl +108 -0
- package/wgsl/BlockDissolve.wgsl +78 -0
- package/wgsl/BookFlip.wgsl +157 -0
- package/wgsl/Bounce.wgsl +98 -0
- package/wgsl/BowTieHorizontal.wgsl +331 -0
- package/wgsl/BowTieVertical.wgsl +331 -0
- package/wgsl/BowTieWithParameter.wgsl +313 -0
- package/wgsl/Box.wgsl +176 -0
- package/wgsl/ButterflyWaveScrawler.wgsl +158 -0
- package/wgsl/CircleCrop.wgsl +88 -0
- package/wgsl/ColourDistance.wgsl +82 -0
- package/wgsl/CrazyParametricFun.wgsl +111 -0
- package/wgsl/CrossZoom.wgsl +219 -0
- package/wgsl/DefocusBlur.wgsl +269 -0
- package/wgsl/Directional.wgsl +79 -0
- package/wgsl/DirectionalScaled.wgsl +117 -0
- package/wgsl/DoomScreenTransition.wgsl +171 -0
- package/wgsl/Dreamy.wgsl +102 -0
- package/wgsl/DreamyZoom.wgsl +154 -0
- package/wgsl/Drop_Zone_Flicker.wgsl +513 -0
- package/wgsl/EdgeTransition.wgsl +216 -0
- package/wgsl/FilmBurn.wgsl +361 -0
- package/wgsl/Fold.wgsl +82 -0
- package/wgsl/GlitchDisplace.wgsl +327 -0
- package/wgsl/GlitchMemories.wgsl +118 -0
- package/wgsl/GridFlip.wgsl +250 -0
- package/wgsl/HSVfade.wgsl +131 -0
- package/wgsl/HorizontalClose.wgsl +72 -0
- package/wgsl/HorizontalOpen.wgsl +75 -0
- package/wgsl/InvertedPageCurl.wgsl +690 -0
- package/wgsl/LeftRight.wgsl +109 -0
- package/wgsl/LinearBlur.wgsl +131 -0
- package/wgsl/Mosaic.wgsl +174 -0
- package/wgsl/Overexposure.wgsl +102 -0
- package/wgsl/PolkaDotsCurtain.wgsl +83 -0
- package/wgsl/PuzzleRight.wgsl +230 -0
- package/wgsl/Radial.wgsl +74 -0
- package/wgsl/Rectangle.wgsl +100 -0
- package/wgsl/RectangleCrop.wgsl +98 -0
- package/wgsl/Revolve_Left.wgsl +314 -0
- package/wgsl/Rolls.wgsl +181 -0
- package/wgsl/RotateScaleVanish.wgsl +199 -0
- package/wgsl/SimpleFlip.wgsl +82 -0
- package/wgsl/SimpleZoom.wgsl +85 -0
- package/wgsl/SimpleZoomOut.wgsl +96 -0
- package/wgsl/Slides.wgsl +216 -0
- package/wgsl/StarWipe.wgsl +169 -0
- package/wgsl/StaticFade.wgsl +159 -0
- package/wgsl/StereoViewer.wgsl +625 -0
- package/wgsl/StripDatamoshGlitch.wgsl +755 -0
- package/wgsl/Swirl.wgsl +124 -0
- package/wgsl/TVStatic.wgsl +106 -0
- package/wgsl/TilesWave.wgsl +262 -0
- package/wgsl/TopBottom.wgsl +109 -0
- package/wgsl/VerticalClose.wgsl +72 -0
- package/wgsl/VerticalOpen.wgsl +75 -0
- package/wgsl/WaterDrop.wgsl +98 -0
- package/wgsl/ZoomInCircles.wgsl +138 -0
- package/wgsl/ZoomLeftWipe.wgsl +121 -0
- package/wgsl/ZoomRigthWipe.wgsl +121 -0
- package/wgsl/angular.wgsl +83 -0
- package/wgsl/burn.wgsl +74 -0
- package/wgsl/burn0.wgsl +198 -0
- package/wgsl/cannabisleaf.wgsl +92 -0
- package/wgsl/chessboard.wgsl +116 -0
- package/wgsl/circle.wgsl +87 -0
- package/wgsl/circleopen.wgsl +96 -0
- package/wgsl/colorphase.wgsl +77 -0
- package/wgsl/coord-from-in.wgsl +83 -0
- package/wgsl/crosshatch.wgsl +96 -0
- package/wgsl/crosswarp.wgsl +75 -0
- package/wgsl/cube.wgsl +217 -0
- package/wgsl/directional-easing.wgsl +83 -0
- package/wgsl/directionalwarp.wgsl +92 -0
- package/wgsl/directionalwipe.wgsl +91 -0
- package/wgsl/displacement.wgsl +96 -0
- package/wgsl/dissolve.wgsl +116 -0
- package/wgsl/doorway.wgsl +174 -0
- package/wgsl/fade.wgsl +67 -0
- package/wgsl/fadecolor.wgsl +75 -0
- package/wgsl/fadegrayscale.wgsl +93 -0
- package/wgsl/flyeye.wgsl +105 -0
- package/wgsl/fragment.wgsl +227 -0
- package/wgsl/heart.wgsl +103 -0
- package/wgsl/hexagonalize.wgsl +238 -0
- package/wgsl/kaleidoscope.wgsl +124 -0
- package/wgsl/luma.wgsl +80 -0
- package/wgsl/luminance_melt.wgsl +299 -0
- package/wgsl/morph.wgsl +103 -0
- package/wgsl/mosaic_transition.wgsl +107 -0
- package/wgsl/multiply_blend.wgsl +96 -0
- package/wgsl/old_tv_lost_signal.wgsl +142 -0
- package/wgsl/parametric_glitch.wgsl +124 -0
- package/wgsl/perlin.wgsl +174 -0
- package/wgsl/pinwheel.wgsl +84 -0
- package/wgsl/pixelize.wgsl +105 -0
- package/wgsl/polar_function.wgsl +88 -0
- package/wgsl/powerKaleido.wgsl +254 -0
- package/wgsl/randomNoisex.wgsl +85 -0
- package/wgsl/randomsquares.wgsl +87 -0
- package/wgsl/ripple.wgsl +85 -0
- package/wgsl/rotateTransition.wgsl +85 -0
- package/wgsl/rotate_scale_fade.wgsl +138 -0
- package/wgsl/scale-in.wgsl +79 -0
- package/wgsl/splitSlideInHorizontal.wgsl +118 -0
- package/wgsl/splitSlideInOutHorizontal.wgsl +109 -0
- package/wgsl/splitSlideInOutVertical.wgsl +109 -0
- package/wgsl/splitSlideInVertical.wgsl +115 -0
- package/wgsl/splitSlideOutHorizontal.wgsl +102 -0
- package/wgsl/splitSlideOutVertical.wgsl +102 -0
- package/wgsl/squareswire.wgsl +115 -0
- package/wgsl/squeeze.wgsl +105 -0
- package/wgsl/static_wipe.wgsl +117 -0
- package/wgsl/swap.wgsl +218 -0
- package/wgsl/tangentMotionBlur.wgsl +503 -0
- package/wgsl/undulatingBurnOut.wgsl +181 -0
- package/wgsl/wind.wgsl +101 -0
- package/wgsl/windowblinds.wgsl +79 -0
- package/wgsl/windowslice.wgsl +80 -0
- package/wgsl/wipeDown.wgsl +77 -0
- package/wgsl/wipeLeft.wgsl +77 -0
- package/wgsl/wipeRight.wgsl +77 -0
- package/wgsl/wipeUp.wgsl +77 -0
- package/wgsl/x_axis_translation.wgsl +82 -0
- package/wgsl/zoomInOut.wgsl +94 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Directional — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Directional.glsl
|
|
2
|
+
// Author: Gaëtan Renaudeau
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image pushes the outgoing one out in a given direction
|
|
5
|
+
// Tags: slide, push, directional
|
|
6
|
+
|
|
7
|
+
// @param Direction of the movement
|
|
8
|
+
uniform vec2 direction; // = vec2(0.0, 1.0)
|
|
9
|
+
|
|
10
|
+
vec4 transition (vec2 uv) {
|
|
11
|
+
vec2 p = uv + progress * sign(direction);
|
|
12
|
+
vec2 f = fract(p);
|
|
13
|
+
return mix(
|
|
14
|
+
getToColor(f),
|
|
15
|
+
getFromColor(f),
|
|
16
|
+
step(0.0, p.y) * step(p.y, 1.0) * step(0.0, p.x) * step(p.x, 1.0)
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// DirectionalScaled — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/DirectionalScaled.glsl
|
|
2
|
+
// Author: Thibaut Foussard
|
|
3
|
+
// based on Directional transition by Gaëtan Renaudeau
|
|
4
|
+
// https://gl-transitions.com/editor/Directional
|
|
5
|
+
// License: MIT
|
|
6
|
+
// Description: Like Directional, with both images scaled down while they slide
|
|
7
|
+
// Tags: slide, push, zoom, directional
|
|
8
|
+
|
|
9
|
+
#define PI acos(-1.0)
|
|
10
|
+
|
|
11
|
+
// @param Direction of the movement
|
|
12
|
+
uniform vec2 direction; // = vec2(0.0, 1.0)
|
|
13
|
+
uniform float scale; // = .7
|
|
14
|
+
|
|
15
|
+
float parabola(float x) {
|
|
16
|
+
float y = pow(sin(x * PI), 1.);
|
|
17
|
+
return y;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
vec4 transition (vec2 uv) {
|
|
21
|
+
float easedProgress = pow(sin(progress * PI / 2.), 3.);
|
|
22
|
+
vec2 p = uv + easedProgress * sign(direction);
|
|
23
|
+
vec2 f = fract(p);
|
|
24
|
+
|
|
25
|
+
float s = 1. - (1. - (1. / scale)) * parabola(progress);
|
|
26
|
+
f = (f - 0.5) * s + 0.5;
|
|
27
|
+
|
|
28
|
+
float mixer = step(0.0, p.y) * step(p.y, 1.0) * step(0.0, p.x) * step(p.x, 1.0);
|
|
29
|
+
vec4 col = mix(getToColor(f), getFromColor(f), mixer);
|
|
30
|
+
|
|
31
|
+
float border = step(0., f.x) * step(0., (1. - f.x)) * step(0., f.y) * step(0., 1. - f.y);
|
|
32
|
+
col *= border;
|
|
33
|
+
|
|
34
|
+
return col;
|
|
35
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// DoomScreenTransition — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/DoomScreenTransition.glsl
|
|
2
|
+
// Author: Zeh Fernando
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image melts down in uneven columns, like the Doom screen wipe
|
|
5
|
+
// Tags: melt, columns, retro
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
// Transition parameters --------
|
|
9
|
+
|
|
10
|
+
// Number of total bars/columns
|
|
11
|
+
uniform int bars; // = 30
|
|
12
|
+
|
|
13
|
+
// Multiplier for speed ratio. 0 = no variation when going down, higher = some elements go much faster
|
|
14
|
+
uniform float amplitude; // = 2
|
|
15
|
+
|
|
16
|
+
// Further variations in speed. 0 = no noise, 1 = super noisy (ignore frequency)
|
|
17
|
+
uniform float noise; // = 0.1
|
|
18
|
+
|
|
19
|
+
// Speed variation horizontally. the bigger the value, the shorter the waves
|
|
20
|
+
uniform float frequency; // = 0.5
|
|
21
|
+
|
|
22
|
+
// How much the bars seem to "run" from the middle of the screen first (sticking to the sides). 0 = no drip, 1 = curved drip
|
|
23
|
+
uniform float dripScale; // = 0.5
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
// The code proper --------
|
|
27
|
+
|
|
28
|
+
float rand(int num) {
|
|
29
|
+
return fract(mod(float(num) * 67123.313, 12.0) * sin(float(num) * 10.3) * cos(float(num)));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
float wave(int num) {
|
|
33
|
+
float fn = float(num) * frequency * 0.1 * float(bars);
|
|
34
|
+
return cos(fn * 0.5) * cos(fn * 0.13) * sin((fn+10.0) * 0.3) / 2.0 + 0.5;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
float drip(int num) {
|
|
38
|
+
return sin(float(num) / float(bars - 1) * 3.141592) * dripScale;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
float pos(int num) {
|
|
42
|
+
return (noise == 0.0 ? wave(num) : mix(wave(num), rand(num), noise)) + (dripScale == 0.0 ? 0.0 : drip(num));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
vec4 transition(vec2 uv) {
|
|
46
|
+
int bar = int(uv.x * (float(bars)));
|
|
47
|
+
float scale = 1.0 + pos(bar) * amplitude;
|
|
48
|
+
float phase = progress * scale;
|
|
49
|
+
float posY = uv.y / vec2(1.0).y;
|
|
50
|
+
vec2 p;
|
|
51
|
+
vec4 c;
|
|
52
|
+
if (phase + posY < 1.0) {
|
|
53
|
+
p = vec2(uv.x, uv.y + mix(0.0, vec2(1.0).y, phase)) / vec2(1.0).xy;
|
|
54
|
+
c = getFromColor(p);
|
|
55
|
+
} else {
|
|
56
|
+
p = uv.xy / vec2(1.0).xy;
|
|
57
|
+
c = getToColor(p);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Finally, apply the color
|
|
61
|
+
return c;
|
|
62
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Dreamy — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Dreamy.glsl
|
|
2
|
+
// Author: mikolalysenko
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A crossfade with a gentle wavy distortion
|
|
5
|
+
// Tags: wave, blend
|
|
6
|
+
|
|
7
|
+
vec2 offset(float progress, float x, float theta) {
|
|
8
|
+
float phase = progress*progress + progress + theta;
|
|
9
|
+
float shifty = 0.03*progress*cos(10.0*(progress+x));
|
|
10
|
+
return vec2(0, shifty);
|
|
11
|
+
}
|
|
12
|
+
vec4 transition(vec2 p) {
|
|
13
|
+
return mix(getFromColor(p + offset(progress, p.x, 0.0)), getToColor(p + offset(1.0-progress, p.x, 3.14)), progress);
|
|
14
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// DreamyZoom — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/DreamyZoom.glsl
|
|
2
|
+
// Author: Zeh Fernando
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Zooms and rotates into a bright flash, then out to the incoming image
|
|
5
|
+
// Tags: zoom, rotate, flash
|
|
6
|
+
|
|
7
|
+
// Definitions --------
|
|
8
|
+
#define DEG2RAD 0.03926990816987241548078304229099 // 1/180*PI
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// Transition parameters --------
|
|
12
|
+
|
|
13
|
+
// In degrees
|
|
14
|
+
uniform float rotation; // = 6
|
|
15
|
+
|
|
16
|
+
// Multiplier
|
|
17
|
+
uniform float scale; // = 1.2
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
// The code proper --------
|
|
21
|
+
|
|
22
|
+
vec4 transition(vec2 uv) {
|
|
23
|
+
// Massage parameters
|
|
24
|
+
float phase = progress < 0.5 ? progress * 2.0 : (progress - 0.5) * 2.0;
|
|
25
|
+
float angleOffset = progress < 0.5 ? mix(0.0, rotation * DEG2RAD, phase) : mix(-rotation * DEG2RAD, 0.0, phase);
|
|
26
|
+
float newScale = progress < 0.5 ? mix(1.0, scale, phase) : mix(scale, 1.0, phase);
|
|
27
|
+
|
|
28
|
+
vec2 center = vec2(0, 0);
|
|
29
|
+
|
|
30
|
+
// Calculate the source point
|
|
31
|
+
vec2 assumedCenter = vec2(0.5, 0.5);
|
|
32
|
+
vec2 p = (uv.xy - vec2(0.5, 0.5)) / newScale * vec2(ratio, 1.0);
|
|
33
|
+
|
|
34
|
+
// This can probably be optimized (with distance())
|
|
35
|
+
float angle = atan(p.y, p.x) + angleOffset;
|
|
36
|
+
float dist = distance(center, p);
|
|
37
|
+
p.x = cos(angle) * dist / ratio + 0.5;
|
|
38
|
+
p.y = sin(angle) * dist + 0.5;
|
|
39
|
+
vec4 c = progress < 0.5 ? getFromColor(p) : getToColor(p);
|
|
40
|
+
|
|
41
|
+
// Finally, apply the color
|
|
42
|
+
return c + (progress < 0.5 ? mix(0.0, 1.0, phase) : mix(1.0, 0.0, phase));
|
|
43
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
// Drop_Zone_Flicker — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Drop_Zone_Flicker.glsl
|
|
2
|
+
// Author: bread
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A flickering glitch with RGB offset, ghosting and scanlines that flashes back to the outgoing image
|
|
5
|
+
// Tags: glitch, flicker, chromatic, scanlines
|
|
6
|
+
// Drop_Zone_Flicker.glsl
|
|
7
|
+
// gl-transitions compatible: progress, ratio, getFromColor, getToColor
|
|
8
|
+
uniform float frameRate; // = 24.0
|
|
9
|
+
uniform float rgbOffset; // = 0.014
|
|
10
|
+
uniform float blockAmount; // = 0.72
|
|
11
|
+
uniform float ghostAmount; // = 0.62
|
|
12
|
+
uniform float redCyan; // = 0.58
|
|
13
|
+
uniform float scanline; // = 0.075
|
|
14
|
+
|
|
15
|
+
float sat(float x) {
|
|
16
|
+
return clamp(x, 0.0, 1.0);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
float hash12(vec2 p) {
|
|
20
|
+
p = fract(p * vec2(443.8975, 397.2973));
|
|
21
|
+
p += dot(p, p.yx + 19.19);
|
|
22
|
+
return fract(p.x * p.y);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
vec2 safeUv(vec2 uv) {
|
|
26
|
+
return clamp(uv, vec2(0.001), vec2(0.999));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// 24fps reference-matched reveal curve.
|
|
30
|
+
// Non-monotonic on purpose: the reference flashes back to the old clip.
|
|
31
|
+
float frameReveal(float f) {
|
|
32
|
+
if (f < 0.5) return 0.00;
|
|
33
|
+
if (f < 1.5) return 0.28;
|
|
34
|
+
if (f < 2.5) return 0.43;
|
|
35
|
+
if (f < 3.5) return 0.46;
|
|
36
|
+
if (f < 4.5) return 0.38;
|
|
37
|
+
if (f < 5.5) return 0.48;
|
|
38
|
+
if (f < 6.5) return 0.26;
|
|
39
|
+
if (f < 7.5) return 0.10;
|
|
40
|
+
if (f < 8.5) return 0.00;
|
|
41
|
+
if (f < 9.5) return 0.00;
|
|
42
|
+
if (f < 10.5) return 0.30;
|
|
43
|
+
if (f < 11.5) return 0.58;
|
|
44
|
+
if (f < 12.5) return 1.00;
|
|
45
|
+
if (f < 13.5) return 0.70;
|
|
46
|
+
if (f < 14.5) return 0.42;
|
|
47
|
+
if (f < 15.5) return 0.55;
|
|
48
|
+
if (f < 16.5) return 0.72;
|
|
49
|
+
if (f < 17.5) return 0.88;
|
|
50
|
+
if (f < 18.5) return 0.34;
|
|
51
|
+
if (f < 19.5) return 0.48;
|
|
52
|
+
if (f < 20.5) return 0.56;
|
|
53
|
+
if (f < 21.5) return 0.76;
|
|
54
|
+
if (f < 22.5) return 0.93;
|
|
55
|
+
return 1.00;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
float frameGlitch(float f) {
|
|
59
|
+
if (f < 0.5) return 0.00;
|
|
60
|
+
if (f < 6.5) return 0.92;
|
|
61
|
+
if (f < 10.5) return 0.38;
|
|
62
|
+
if (f < 11.5) return 0.78;
|
|
63
|
+
if (f < 12.5) return 0.12;
|
|
64
|
+
if (f < 17.5) return 0.74;
|
|
65
|
+
if (f < 22.5) return 0.88;
|
|
66
|
+
if (f < 23.5) return 0.28;
|
|
67
|
+
return 0.00;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
vec4 chromaFrom(vec2 uv, float amt) {
|
|
71
|
+
vec2 o = vec2(amt, 0.0);
|
|
72
|
+
return vec4(
|
|
73
|
+
getFromColor(safeUv(uv + o)).r,
|
|
74
|
+
getFromColor(safeUv(uv)).g,
|
|
75
|
+
getFromColor(safeUv(uv - o)).b,
|
|
76
|
+
1.0
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
vec4 chromaTo(vec2 uv, float amt) {
|
|
81
|
+
vec2 o = vec2(amt, 0.0);
|
|
82
|
+
return vec4(
|
|
83
|
+
getToColor(safeUv(uv - o)).r,
|
|
84
|
+
getToColor(safeUv(uv)).g,
|
|
85
|
+
getToColor(safeUv(uv + o)).b,
|
|
86
|
+
1.0
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
float blockMask(vec2 uv, float f) {
|
|
91
|
+
vec2 big = floor(uv * vec2(4.0, 2.0));
|
|
92
|
+
vec2 small = floor(uv * vec2(8.0, 4.0));
|
|
93
|
+
|
|
94
|
+
float wide = step(0.48, hash12(vec2(big.x, f * 1.37)));
|
|
95
|
+
float chunks = step(0.56, hash12(small + vec2(f * 2.11, f * 0.73)));
|
|
96
|
+
|
|
97
|
+
float verticalCut = smoothstep(
|
|
98
|
+
-0.035,
|
|
99
|
+
0.035,
|
|
100
|
+
uv.x - mix(0.18, 0.78, hash12(vec2(f, 4.7)))
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
return sat(mix(wide, chunks, 0.38) * 0.72 + verticalCut * 0.28);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
vec4 transition(vec2 uv) {
|
|
107
|
+
if (progress <= 0.0) return getFromColor(uv);
|
|
108
|
+
if (progress >= 1.0) return getToColor(uv);
|
|
109
|
+
|
|
110
|
+
float f = floor(progress * frameRate);
|
|
111
|
+
float reveal = frameReveal(f);
|
|
112
|
+
float glitch = frameGlitch(f);
|
|
113
|
+
|
|
114
|
+
float rnd = hash12(vec2(f, 9.13));
|
|
115
|
+
vec2 jitter = vec2(
|
|
116
|
+
(rnd - 0.5) * 0.042,
|
|
117
|
+
(hash12(vec2(f, 2.71)) - 0.5) * 0.010
|
|
118
|
+
) * glitch;
|
|
119
|
+
|
|
120
|
+
vec2 fromUv = safeUv(uv + jitter);
|
|
121
|
+
vec2 toUv = safeUv(uv - jitter * 0.55);
|
|
122
|
+
|
|
123
|
+
float block = blockMask(uv, f);
|
|
124
|
+
float localReveal = sat(
|
|
125
|
+
reveal +
|
|
126
|
+
(block - 0.5) * blockAmount * glitch +
|
|
127
|
+
(hash12(vec2(f, floor(uv.y * 9.0))) - 0.5) * 0.18 * glitch
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
localReveal = smoothstep(0.22, 0.78, localReveal);
|
|
131
|
+
|
|
132
|
+
vec4 oldClip = chromaFrom(fromUv, rgbOffset * glitch);
|
|
133
|
+
vec4 newClip = chromaTo(toUv, rgbOffset * glitch);
|
|
134
|
+
|
|
135
|
+
vec4 color = mix(oldClip, newClip, localReveal);
|
|
136
|
+
|
|
137
|
+
float leftWash = (1.0 - smoothstep(0.10, 0.78, uv.x)) * glitch;
|
|
138
|
+
float cyanWash = smoothstep(0.08, 0.62, uv.x) * (1.0 - smoothstep(0.86, 1.0, uv.x)) * glitch;
|
|
139
|
+
|
|
140
|
+
vec3 redGhost = oldClip.rgb * vec3(1.34, 0.42, 0.38);
|
|
141
|
+
vec3 cyanGhost = newClip.rgb * vec3(0.48, 1.12, 1.24);
|
|
142
|
+
|
|
143
|
+
color.rgb = mix(color.rgb, redGhost, leftWash * redCyan * 0.42);
|
|
144
|
+
color.rgb = mix(color.rgb, cyanGhost, cyanWash * redCyan * 0.30);
|
|
145
|
+
|
|
146
|
+
// Keeps the old circular "drop zone" visible as a translucent flash,
|
|
147
|
+
// especially after the first full new-frame hit.
|
|
148
|
+
float oldReturn = glitch * (1.0 - smoothstep(0.94, 1.0, reveal));
|
|
149
|
+
oldReturn *= 0.18 + 0.52 * (1.0 - abs(localReveal - 0.5) * 2.0);
|
|
150
|
+
color.rgb = mix(color.rgb, oldClip.rgb, oldReturn * ghostAmount);
|
|
151
|
+
|
|
152
|
+
float lines = sin((uv.y + f * 0.017) * 1080.0);
|
|
153
|
+
color.rgb += lines * scanline * glitch;
|
|
154
|
+
|
|
155
|
+
float exposurePulse = (hash12(vec2(f, 12.4)) - 0.35) * 0.10 * glitch;
|
|
156
|
+
color.rgb += exposurePulse;
|
|
157
|
+
|
|
158
|
+
return vec4(sat(color.r), sat(color.g), sat(color.b), 1.0);
|
|
159
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// EdgeTransition — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/EdgeTransition.glsl
|
|
2
|
+
// Author: Woohyun Kim
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Both images fade through black with their edges glowing
|
|
5
|
+
// Tags: edges, fade
|
|
6
|
+
|
|
7
|
+
uniform float edge_thickness; // = 0.001
|
|
8
|
+
uniform float edge_brightness; // = 8.0
|
|
9
|
+
|
|
10
|
+
vec4 detectEdgeColor(vec3[9] c) {
|
|
11
|
+
/* adjacent texel array for texel c[4]
|
|
12
|
+
036
|
|
13
|
+
147
|
|
14
|
+
258
|
|
15
|
+
*/
|
|
16
|
+
vec3 dx = 2.0 * abs(c[7]-c[1]) + abs(c[2] - c[6]) + abs(c[8] - c[0]);
|
|
17
|
+
vec3 dy = 2.0 * abs(c[3]-c[5]) + abs(c[6] - c[8]) + abs(c[0] - c[2]);
|
|
18
|
+
float delta = length(0.25 * (dx + dy) * 0.5);
|
|
19
|
+
return vec4(clamp(edge_brightness * delta, 0.0, 1.0) * c[4], 1.0);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
vec4 getFromEdgeColor(vec2 uv) {
|
|
23
|
+
vec3 c[9];
|
|
24
|
+
for (int i=0; i < 3; ++i) for (int j=0; j < 3; ++j)
|
|
25
|
+
{
|
|
26
|
+
vec4 color = getFromColor(uv + edge_thickness * vec2(i-1,j-1));
|
|
27
|
+
c[3*i + j] = color.rgb;
|
|
28
|
+
}
|
|
29
|
+
return detectEdgeColor(c);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
vec4 getToEdgeColor(vec2 uv) {
|
|
33
|
+
vec3 c[9];
|
|
34
|
+
for (int i=0; i < 3; ++i) for (int j=0; j < 3; ++j)
|
|
35
|
+
{
|
|
36
|
+
vec4 color = getToColor(uv + edge_thickness * vec2(i-1,j-1));
|
|
37
|
+
c[3*i + j] = color.rgb;
|
|
38
|
+
}
|
|
39
|
+
return detectEdgeColor(c);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
vec4 transition (vec2 uv) {
|
|
43
|
+
vec4 start = mix(getFromColor(uv), getFromEdgeColor(uv), clamp(2.0 * progress, 0.0, 1.0));
|
|
44
|
+
vec4 end = mix(getToEdgeColor(uv), getToColor(uv), clamp(2.0 * (progress - 0.5), 0.0, 1.0));
|
|
45
|
+
return mix(
|
|
46
|
+
start,
|
|
47
|
+
end,
|
|
48
|
+
progress
|
|
49
|
+
);
|
|
50
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// FilmBurn — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/FilmBurn.glsl
|
|
2
|
+
// Author: Anastasia Dunbar
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Glowing film-burn light leaks wash over the image and reveal the incoming one
|
|
5
|
+
// Tags: burn, film, light-leak
|
|
6
|
+
// @param Random seed
|
|
7
|
+
uniform float Seed; // = 2.31
|
|
8
|
+
float sigmoid(float x, float a) {
|
|
9
|
+
float b = pow(x*2.,a)/2.;
|
|
10
|
+
if (x > .5) {
|
|
11
|
+
b = 1.-pow(2.-(x*2.),a)/2.;
|
|
12
|
+
}
|
|
13
|
+
return b;
|
|
14
|
+
}
|
|
15
|
+
float rand(float co){
|
|
16
|
+
return fract(sin((co*24.9898)+Seed)*43758.5453);
|
|
17
|
+
}
|
|
18
|
+
float rand(vec2 co){
|
|
19
|
+
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
|
20
|
+
}
|
|
21
|
+
float apow(float a,float b) { return pow(abs(a),b)*sign(b); }
|
|
22
|
+
vec3 pow3(vec3 a,vec3 b) { return vec3(apow(a.r,b.r),apow(a.g,b.g),apow(a.b,b.b)); }
|
|
23
|
+
float smooth_mix(float a,float b,float c) { return mix(a,b,sigmoid(c,2.)); }
|
|
24
|
+
float random(vec2 co, float shft){
|
|
25
|
+
co += 10.;
|
|
26
|
+
return smooth_mix(fract(sin(dot(co.xy ,vec2(12.9898+(floor(shft)*.5),78.233+Seed))) * 43758.5453),fract(sin(dot(co.xy ,vec2(12.9898+(floor(shft+1.)*.5),78.233+Seed))) * 43758.5453),fract(shft));
|
|
27
|
+
}
|
|
28
|
+
float smooth_random(vec2 co, float shft) {
|
|
29
|
+
return smooth_mix(smooth_mix(random(floor(co),shft),random(floor(co+vec2(1.,0.)),shft),fract(co.x)),smooth_mix(random(floor(co+vec2(0.,1.)),shft),random(floor(co+vec2(1.,1.)),shft),fract(co.x)),fract(co.y));
|
|
30
|
+
}
|
|
31
|
+
vec4 blendedColor(vec2 p) {
|
|
32
|
+
return mix(getFromColor(p), getToColor(p), sigmoid(progress,10.));
|
|
33
|
+
}
|
|
34
|
+
#define pi 3.14159265358979323
|
|
35
|
+
#define clamps(x) clamp(x,0.,1.)
|
|
36
|
+
|
|
37
|
+
vec4 transition(vec2 p) {
|
|
38
|
+
vec3 f = vec3(0.);
|
|
39
|
+
for (float i = 0.; i < 13.; i++) {
|
|
40
|
+
f += sin(((p.x*rand(i)*6.)+(progress*8.))+rand(i+1.43))*sin(((p.y*rand(i+4.4)*6.)+(progress*6.))+rand(i+2.4));
|
|
41
|
+
f += 1.-clamps(length(p-vec2(smooth_random(vec2(progress*1.3),i+1.),smooth_random(vec2(progress*.5),i+6.25)))*mix(20.,70.,rand(i)));
|
|
42
|
+
}
|
|
43
|
+
f += 4.;
|
|
44
|
+
f /= 11.;
|
|
45
|
+
f = pow3(f*vec3(1.,0.7,0.6),vec3(1.,2.-sin(progress*pi),1.3));
|
|
46
|
+
f *= sin(progress*pi);
|
|
47
|
+
|
|
48
|
+
p -= .5;
|
|
49
|
+
p *= 1.+(smooth_random(vec2(progress*5.),6.3)*sin(progress*pi)*.05);
|
|
50
|
+
p += .5;
|
|
51
|
+
|
|
52
|
+
vec4 blurred_image = vec4(0.);
|
|
53
|
+
float bluramount = sin(progress*pi)*.03;
|
|
54
|
+
#define repeats 50.
|
|
55
|
+
for (float i = 0.; i < repeats; i++) {
|
|
56
|
+
vec2 q = vec2(cos(degrees((i/repeats)*360.)),sin(degrees((i/repeats)*360.))) * (rand(vec2(i,p.x+p.y))+bluramount);
|
|
57
|
+
vec2 uv2 = p+(q*bluramount);
|
|
58
|
+
blurred_image += blendedColor(uv2);
|
|
59
|
+
}
|
|
60
|
+
blurred_image /= repeats;
|
|
61
|
+
|
|
62
|
+
return blurred_image+vec4(f,0.);
|
|
63
|
+
}
|
package/glsl3/Fold.glsl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Fold — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Fold.glsl
|
|
2
|
+
// Author: nwoeanhinnogaehr
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image unfolds from the left while the outgoing one folds away to the right
|
|
5
|
+
// Tags: fold, slide, horizontal
|
|
6
|
+
// Ported from https://gist.github.com/nwoeanhinnogaehr/f6fc39f4cfcbb97f96a6
|
|
7
|
+
|
|
8
|
+
vec4 transition(vec2 uv) {
|
|
9
|
+
// Only sample the visible side: the other one divides by zero at progress 0 and 1.
|
|
10
|
+
if (progress == 0.0 || uv.x > progress) return getFromColor((uv - vec2(progress, 0.0)) / vec2(1.0 - progress, 1.0));
|
|
11
|
+
return getToColor(uv / vec2(progress, 1.0));
|
|
12
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// GlitchDisplace — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/GlitchDisplace.glsl
|
|
2
|
+
// Author: Matt DesLauriers
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Blocks of the image are displaced in a glitch that flashes into the incoming image
|
|
5
|
+
// Tags: glitch, displace
|
|
6
|
+
|
|
7
|
+
float random(vec2 co)
|
|
8
|
+
{
|
|
9
|
+
float a = 12.9898;
|
|
10
|
+
float b = 78.233;
|
|
11
|
+
float c = 43758.5453;
|
|
12
|
+
float dt= dot(co.xy ,vec2(a,b));
|
|
13
|
+
float sn= mod(dt,3.14);
|
|
14
|
+
return fract(sin(sn) * c);
|
|
15
|
+
}
|
|
16
|
+
float voronoi( in vec2 x ) {
|
|
17
|
+
vec2 p = floor( x );
|
|
18
|
+
vec2 f = fract( x );
|
|
19
|
+
float res = 8.0;
|
|
20
|
+
for( float j=-1.; j<=1.; j++ )
|
|
21
|
+
for( float i=-1.; i<=1.; i++ ) {
|
|
22
|
+
vec2 b = vec2( i, j );
|
|
23
|
+
vec2 r = b - f + random( p + b );
|
|
24
|
+
float d = dot( r, r );
|
|
25
|
+
res = min( res, d );
|
|
26
|
+
}
|
|
27
|
+
return sqrt( res );
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
vec2 displace(vec4 tex, vec2 texCoord, float dotDepth, float textureDepth, float strength) {
|
|
31
|
+
float b = voronoi(.003 * texCoord + 2.0);
|
|
32
|
+
float g = voronoi(0.2 * texCoord);
|
|
33
|
+
float r = voronoi(texCoord - 1.0);
|
|
34
|
+
vec4 dt = tex * 1.0;
|
|
35
|
+
vec4 dis = dt * dotDepth + 1.0 - tex * textureDepth;
|
|
36
|
+
|
|
37
|
+
dis.x = dis.x - 1.0 + textureDepth*dotDepth;
|
|
38
|
+
dis.y = dis.y - 1.0 + textureDepth*dotDepth;
|
|
39
|
+
dis.x *= strength;
|
|
40
|
+
dis.y *= strength;
|
|
41
|
+
vec2 res_uv = texCoord ;
|
|
42
|
+
res_uv.x = res_uv.x + dis.x - 0.0;
|
|
43
|
+
res_uv.y = res_uv.y + dis.y;
|
|
44
|
+
return res_uv;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
float ease1(float t) {
|
|
48
|
+
return t == 0.0 || t == 1.0
|
|
49
|
+
? t
|
|
50
|
+
: t < 0.5
|
|
51
|
+
? +0.5 * pow(2.0, (20.0 * t) - 10.0)
|
|
52
|
+
: -0.5 * pow(2.0, 10.0 - (t * 20.0)) + 1.0;
|
|
53
|
+
}
|
|
54
|
+
float ease2(float t) {
|
|
55
|
+
return t == 1.0 ? t : 1.0 - pow(2.0, -10.0 * t);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
vec4 transition(vec2 uv) {
|
|
61
|
+
vec2 p = uv.xy / vec2(1.0).xy;
|
|
62
|
+
vec4 color1 = getFromColor(p);
|
|
63
|
+
vec4 color2 = getToColor(p);
|
|
64
|
+
vec2 disp = displace(color1, p, 0.33, 0.7, 1.0-ease1(progress));
|
|
65
|
+
vec2 disp2 = displace(color2, p, 0.33, 0.5, ease2(progress));
|
|
66
|
+
vec4 dColor1 = getToColor(disp);
|
|
67
|
+
vec4 dColor2 = getFromColor(disp2);
|
|
68
|
+
float val = ease1(progress);
|
|
69
|
+
vec3 gray = vec3(dot(min(dColor2, dColor1).rgb, vec3(0.299, 0.587, 0.114)));
|
|
70
|
+
dColor2 = vec4(gray, 1.0);
|
|
71
|
+
dColor2 *= 2.0;
|
|
72
|
+
color1 = mix(color1, dColor2, smoothstep(0.0, 0.5, progress));
|
|
73
|
+
color2 = mix(color2, dColor1, smoothstep(1.0, 0.5, progress));
|
|
74
|
+
return mix(color1, color2, val);
|
|
75
|
+
//gl_FragColor = mix(gl_FragColor, dColor, smoothstep(0.0, 0.5, progress));
|
|
76
|
+
|
|
77
|
+
//gl_FragColor = mix(texture(from, p), texture(to, p), progress);
|
|
78
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// GlitchMemories — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/GlitchMemories.glsl
|
|
2
|
+
// Author: Gunnar Roth
|
|
3
|
+
// based on work from natewave
|
|
4
|
+
// License: MIT
|
|
5
|
+
// Description: A crossfade with glitchy, color-shifted blocks
|
|
6
|
+
// Tags: glitch, chromatic, blend
|
|
7
|
+
vec4 transition(vec2 p) {
|
|
8
|
+
vec2 block = floor(p.xy / vec2(16));
|
|
9
|
+
vec2 uv_noise = block / vec2(64);
|
|
10
|
+
uv_noise += floor(vec2(progress) * vec2(1200.0, 3500.0)) / vec2(64);
|
|
11
|
+
vec2 dist = progress > 0.0 ? (fract(uv_noise) - 0.5) * 0.3 *(1.0 -progress) : vec2(0.0);
|
|
12
|
+
vec2 red = p + dist * 0.2;
|
|
13
|
+
vec2 green = p + dist * .3;
|
|
14
|
+
vec2 blue = p + dist * .5;
|
|
15
|
+
|
|
16
|
+
return vec4(mix(getFromColor(red), getToColor(red), progress).r,mix(getFromColor(green), getToColor(green), progress).g,mix(getFromColor(blue), getToColor(blue), progress).b,1.0);
|
|
17
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// GridFlip — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/GridFlip.glsl
|
|
2
|
+
// License: MIT
|
|
3
|
+
// Author: TimDonselaar
|
|
4
|
+
// Description: The image splits into a grid of tiles that flip one by one to the incoming image
|
|
5
|
+
// Tags: grid, tiles, flip
|
|
6
|
+
// ported by gre from https://gist.github.com/TimDonselaar/9bcd1c4b5934ba60087bdb55c2ea92e5
|
|
7
|
+
|
|
8
|
+
// @param Number of tiles (columns, rows)
|
|
9
|
+
uniform ivec2 size; // = ivec2(4)
|
|
10
|
+
uniform float pause; // = 0.1
|
|
11
|
+
uniform float dividerWidth; // = 0.05
|
|
12
|
+
// @color Color behind the tiles
|
|
13
|
+
uniform vec4 bgcolor; // = vec4(0.0, 0.0, 0.0, 1.0)
|
|
14
|
+
uniform float randomness; // = 0.1
|
|
15
|
+
|
|
16
|
+
float rand (vec2 co) {
|
|
17
|
+
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
float getDelta(vec2 p) {
|
|
21
|
+
vec2 rectanglePos = floor(vec2(size) * p);
|
|
22
|
+
vec2 rectangleSize = vec2(1.0 / vec2(size).x, 1.0 / vec2(size).y);
|
|
23
|
+
float top = rectangleSize.y * (rectanglePos.y + 1.0);
|
|
24
|
+
float bottom = rectangleSize.y * rectanglePos.y;
|
|
25
|
+
float left = rectangleSize.x * rectanglePos.x;
|
|
26
|
+
float right = rectangleSize.x * (rectanglePos.x + 1.0);
|
|
27
|
+
float minX = min(abs(p.x - left), abs(p.x - right));
|
|
28
|
+
float minY = min(abs(p.y - top), abs(p.y - bottom));
|
|
29
|
+
return min(minX, minY);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
float getDividerSize() {
|
|
33
|
+
vec2 rectangleSize = vec2(1.0 / vec2(size).x, 1.0 / vec2(size).y);
|
|
34
|
+
return min(rectangleSize.x, rectangleSize.y) * dividerWidth;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
vec4 transition(vec2 p) {
|
|
38
|
+
if(progress < pause) {
|
|
39
|
+
float currentProg = progress / pause;
|
|
40
|
+
float a = 1.0;
|
|
41
|
+
if(getDelta(p) < getDividerSize()) {
|
|
42
|
+
a = 1.0 - currentProg;
|
|
43
|
+
}
|
|
44
|
+
return mix(bgcolor, getFromColor(p), a);
|
|
45
|
+
}
|
|
46
|
+
else if(progress < 1.0 - pause){
|
|
47
|
+
if(getDelta(p) < getDividerSize()) {
|
|
48
|
+
return bgcolor;
|
|
49
|
+
} else {
|
|
50
|
+
float currentProg = (progress - pause) / (1.0 - pause * 2.0);
|
|
51
|
+
vec2 q = p;
|
|
52
|
+
vec2 rectanglePos = floor(vec2(size) * q);
|
|
53
|
+
|
|
54
|
+
float r = rand(rectanglePos) - randomness;
|
|
55
|
+
float cp = smoothstep(0.0, 1.0 - r, currentProg);
|
|
56
|
+
|
|
57
|
+
float rectangleSize = 1.0 / vec2(size).x;
|
|
58
|
+
float delta = rectanglePos.x * rectangleSize;
|
|
59
|
+
float offset = rectangleSize / 2.0 + delta;
|
|
60
|
+
|
|
61
|
+
p.x = (p.x - offset)/abs(cp - 0.5)*0.5 + offset;
|
|
62
|
+
vec4 a = getFromColor(p);
|
|
63
|
+
vec4 b = getToColor(p);
|
|
64
|
+
|
|
65
|
+
float s = step(abs(vec2(size).x * (q.x - delta) - 0.5), abs(cp - 0.5));
|
|
66
|
+
return mix(bgcolor, mix(b, a, step(cp, 0.5)), s);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
float currentProg = (progress - 1.0 + pause) / pause;
|
|
71
|
+
float a = 1.0;
|
|
72
|
+
if(getDelta(p) < getDividerSize()) {
|
|
73
|
+
a = currentProg;
|
|
74
|
+
}
|
|
75
|
+
return mix(bgcolor, getToColor(p), a);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// HSVfade — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/HSVfade.glsl
|
|
2
|
+
// Author: nwoeanhinnogaehr
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A crossfade through the HSV color space that cycles through hues
|
|
5
|
+
// Tags: fade, color, hue
|
|
6
|
+
// Ported from https://gist.github.com/nwoeanhinnogaehr/b185145363d65751009b
|
|
7
|
+
|
|
8
|
+
// HSV functions from http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl
|
|
9
|
+
|
|
10
|
+
vec3 hsv2rgb(vec3 c) {
|
|
11
|
+
const vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
|
|
12
|
+
vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
|
|
13
|
+
return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
vec3 rgb2hsv(vec3 c) {
|
|
17
|
+
const vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
|
|
18
|
+
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
|
|
19
|
+
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
|
|
20
|
+
float d = q.x - min(q.w, q.y);
|
|
21
|
+
return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 0.001)), d / (q.x + 0.001), q.x);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
vec4 transition(vec2 uv) {
|
|
25
|
+
vec3 a = rgb2hsv(getFromColor(uv).rgb);
|
|
26
|
+
vec3 b = rgb2hsv(getToColor(uv).rgb);
|
|
27
|
+
vec3 m = mix(a, b, progress);
|
|
28
|
+
return vec4(hsv2rgb(m), 1.0);
|
|
29
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// HorizontalClose — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/HorizontalClose.glsl
|
|
2
|
+
// Author: martiniti
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image closes in from the top and bottom edges toward the middle
|
|
5
|
+
// Tags: wipe, split
|
|
6
|
+
|
|
7
|
+
vec4 transition (vec2 uv) {
|
|
8
|
+
|
|
9
|
+
float s = 2.0 - abs((uv.y - 0.5) / (progress - 1.0)) - 2.0 * progress;
|
|
10
|
+
|
|
11
|
+
return mix(
|
|
12
|
+
getFromColor(uv),
|
|
13
|
+
getToColor(uv),
|
|
14
|
+
smoothstep(0.5, 0.0, s)
|
|
15
|
+
);
|
|
16
|
+
}
|