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,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
|
+
}
|
package/glsl3/swap.glsl
ADDED
|
@@ -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
|
+
}
|