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
|
+
// TVStatic — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/TVStatic.glsl
|
|
2
|
+
// Author: Brandon Anzaldi
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Cuts to full-screen TV static, then to the incoming image
|
|
5
|
+
// Tags: static, noise, retro
|
|
6
|
+
// @param Part of the transition, at each end, that shows the images instead of static
|
|
7
|
+
uniform float offset; // = 0.05
|
|
8
|
+
|
|
9
|
+
// Pseudo-random noise function
|
|
10
|
+
// http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/
|
|
11
|
+
highp float noise(vec2 co)
|
|
12
|
+
{
|
|
13
|
+
highp float a = 12.9898;
|
|
14
|
+
highp float b = 78.233;
|
|
15
|
+
highp float c = 43758.5453;
|
|
16
|
+
highp float dt= dot(co.xy * progress, vec2(a, b));
|
|
17
|
+
highp float sn= mod(dt,3.14);
|
|
18
|
+
return fract(sin(sn) * c);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
vec4 transition(vec2 p) {
|
|
22
|
+
if (progress < offset) {
|
|
23
|
+
return getFromColor(p);
|
|
24
|
+
} else if (progress > (1.0 - offset)) {
|
|
25
|
+
return getToColor(p);
|
|
26
|
+
} else {
|
|
27
|
+
return vec4(vec3(noise(p)), 1.0);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// TilesWave — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/TilesWave.glsl
|
|
2
|
+
// Author: numb3r23
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image is revealed tile by tile in a diagonal wave
|
|
5
|
+
// Tags: tiles, wave, wipe
|
|
6
|
+
// Ported from https://gist.github.com/numb3r23/169781bb76f310e2bfde
|
|
7
|
+
|
|
8
|
+
// @param Number of tiles (columns, rows)
|
|
9
|
+
uniform ivec2 tileCount; // = ivec2(8, 8)
|
|
10
|
+
uniform bool flipX; // = true
|
|
11
|
+
uniform bool flipY; // = false
|
|
12
|
+
|
|
13
|
+
vec4 transition(vec2 uv) {
|
|
14
|
+
vec2 tileSize = 1.0 / vec2(tileCount);
|
|
15
|
+
vec2 posInTile = fract(uv * vec2(tileCount));
|
|
16
|
+
vec2 tileNum = floor(uv * vec2(tileCount));
|
|
17
|
+
float countTiles = float(tileCount.x * tileCount.y);
|
|
18
|
+
|
|
19
|
+
// Diagonal wave from bottom-left to top-right
|
|
20
|
+
float offset = (tileNum.y + tileNum.x * float(tileCount.y)) / countTiles;
|
|
21
|
+
float timeOffset = clamp((progress - offset) * countTiles, 0.0, 0.5);
|
|
22
|
+
float sinTime = 1.0 - abs(cos(fract(timeOffset) * 3.1415926));
|
|
23
|
+
|
|
24
|
+
vec2 texC = posInTile;
|
|
25
|
+
|
|
26
|
+
if (sinTime <= 0.5) {
|
|
27
|
+
if (flipX) {
|
|
28
|
+
if (texC.x < sinTime || texC.x > 1.0 - sinTime)
|
|
29
|
+
return getFromColor(uv);
|
|
30
|
+
texC.x = texC.x < 0.5
|
|
31
|
+
? (texC.x - sinTime) * 0.5 / (0.5 - sinTime)
|
|
32
|
+
: (texC.x - 0.5) * 0.5 / (0.5 - sinTime) + 0.5;
|
|
33
|
+
}
|
|
34
|
+
if (flipY) {
|
|
35
|
+
if (texC.y < sinTime || texC.y > 1.0 - sinTime)
|
|
36
|
+
return getFromColor(uv);
|
|
37
|
+
texC.y = texC.y < 0.5
|
|
38
|
+
? (texC.y - sinTime) * 0.5 / (0.5 - sinTime)
|
|
39
|
+
: (texC.y - 0.5) * 0.5 / (0.5 - sinTime) + 0.5;
|
|
40
|
+
}
|
|
41
|
+
vec2 globalUV = tileNum * tileSize + texC * tileSize;
|
|
42
|
+
return getFromColor(globalUV);
|
|
43
|
+
} else {
|
|
44
|
+
if (flipX) {
|
|
45
|
+
if (texC.x > sinTime || texC.x < 1.0 - sinTime)
|
|
46
|
+
return getToColor(uv);
|
|
47
|
+
texC.x = texC.x < 0.5
|
|
48
|
+
? (texC.x - sinTime) * 0.5 / (0.5 - sinTime)
|
|
49
|
+
: (texC.x - 0.5) * 0.5 / (0.5 - sinTime) + 0.5;
|
|
50
|
+
texC.x = 1.0 - texC.x;
|
|
51
|
+
}
|
|
52
|
+
if (flipY) {
|
|
53
|
+
if (texC.y > sinTime || texC.y < 1.0 - sinTime)
|
|
54
|
+
return getToColor(uv);
|
|
55
|
+
texC.y = texC.y < 0.5
|
|
56
|
+
? (texC.y - sinTime) * 0.5 / (0.5 - sinTime)
|
|
57
|
+
: (texC.y - 0.5) * 0.5 / (0.5 - sinTime) + 0.5;
|
|
58
|
+
texC.y = 1.0 - texC.y;
|
|
59
|
+
}
|
|
60
|
+
vec2 globalUV = tileNum * tileSize + texC * tileSize;
|
|
61
|
+
return getToColor(globalUV);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// TopBottom — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/TopBottom.glsl
|
|
2
|
+
// Author: zhmy
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image shrinks away upward while the incoming one slides in from the bottom
|
|
5
|
+
// Tags: slide, zoom, vertical
|
|
6
|
+
|
|
7
|
+
const vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
|
|
8
|
+
const vec2 boundMin = vec2(0.0, 0.0);
|
|
9
|
+
const vec2 boundMax = vec2(1.0, 1.0);
|
|
10
|
+
|
|
11
|
+
bool inBounds (vec2 p) {
|
|
12
|
+
return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
vec4 transition (vec2 uv) {
|
|
16
|
+
vec2 spfr,spto = vec2(-1.);
|
|
17
|
+
float size = mix(1.0, 3.0, progress*0.2);
|
|
18
|
+
spto = (uv + vec2(-0.5,-0.5))*vec2(size,size)+vec2(0.5,0.5);
|
|
19
|
+
spfr = (uv + vec2(0.0, 1.0 - progress));
|
|
20
|
+
if(inBounds(spfr)){
|
|
21
|
+
return getToColor(spfr);
|
|
22
|
+
} else if(inBounds(spto)){
|
|
23
|
+
return getFromColor(spto) * (1.0 - progress);
|
|
24
|
+
} else{
|
|
25
|
+
return black;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// VerticalClose — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/VerticalClose.glsl
|
|
2
|
+
// Author: martiniti
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image closes in from the left and right edges toward the middle
|
|
5
|
+
// Tags: wipe, split
|
|
6
|
+
|
|
7
|
+
vec4 transition (vec2 uv) {
|
|
8
|
+
|
|
9
|
+
float s = 2.0 - abs((uv.x - 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
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// VerticalOpen — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/VerticalOpen.glsl
|
|
2
|
+
// Author: martiniti
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The incoming image opens from a line in the middle toward the left and right edges
|
|
5
|
+
// Tags: wipe, split
|
|
6
|
+
|
|
7
|
+
vec4 transition (vec2 uv) {
|
|
8
|
+
|
|
9
|
+
float regress = 1.0 - progress;
|
|
10
|
+
float s = 2.0 - abs((uv.x - 0.5) / (regress - 1.0)) - 2.0 * regress;
|
|
11
|
+
|
|
12
|
+
return mix(
|
|
13
|
+
getFromColor(uv),
|
|
14
|
+
getToColor(uv),
|
|
15
|
+
smoothstep(0.0, 0.5, s)
|
|
16
|
+
);
|
|
17
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// WaterDrop — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/WaterDrop.glsl
|
|
2
|
+
// Author: Paweł Płóciennik
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Ripples spread from the center like a drop falling into water, crossfading to the incoming image
|
|
5
|
+
// Tags: ripple, water, blend
|
|
6
|
+
// @param Frequency of the ripples
|
|
7
|
+
uniform float amplitude; // = 30
|
|
8
|
+
// @param Speed of the ripples
|
|
9
|
+
uniform float speed; // = 30
|
|
10
|
+
|
|
11
|
+
vec4 transition(vec2 p) {
|
|
12
|
+
vec2 dir = p - vec2(.5);
|
|
13
|
+
float dist = length(dir);
|
|
14
|
+
|
|
15
|
+
if (dist > progress) {
|
|
16
|
+
return mix(getFromColor( p), getToColor( p), progress);
|
|
17
|
+
} else {
|
|
18
|
+
vec2 offset = dir * sin(dist * amplitude - progress * speed);
|
|
19
|
+
return mix(getFromColor( p + offset), getToColor( p), progress);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// ZoomInCircles — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ZoomInCircles.glsl
|
|
2
|
+
// License: MIT
|
|
3
|
+
// Author: dycm8009
|
|
4
|
+
// Description: Concentric rings of the outgoing image zoom at different speeds before revealing the incoming one
|
|
5
|
+
// Tags: zoom, circle
|
|
6
|
+
// ported by gre from https://gist.github.com/dycm8009/948e99b1800e81ad909a
|
|
7
|
+
|
|
8
|
+
vec2 zoom(vec2 uv, float amount) {
|
|
9
|
+
return 0.5 + ((uv - 0.5) * amount);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
vec4 transition(vec2 uv) {
|
|
13
|
+
vec2 ratio2 = vec2(1.0, 1.0 / ratio);
|
|
14
|
+
// TODO: some timing are hardcoded but should be one or many parameters
|
|
15
|
+
// TODO: should also be able to configure how much circles
|
|
16
|
+
// TODO: if() branching should be avoided when possible, prefer use of step() & other functions
|
|
17
|
+
vec2 r = 2.0 * ((vec2(uv.xy) - 0.5) * ratio2);
|
|
18
|
+
float pro = progress / 0.8;
|
|
19
|
+
float z = pro * 0.2;
|
|
20
|
+
float t = 0.0;
|
|
21
|
+
if (pro > 1.0) {
|
|
22
|
+
z = 0.2 + (pro - 1.0) * 5.;
|
|
23
|
+
t = clamp((progress - 0.8) / 0.07, 0.0, 1.0);
|
|
24
|
+
}
|
|
25
|
+
if (length(r) < 0.5+z) {
|
|
26
|
+
// uv = zoom(uv, 0.9 - 0.1 * pro);
|
|
27
|
+
}
|
|
28
|
+
else if (length(r) < 0.8+z*1.5) {
|
|
29
|
+
uv = zoom(uv, 1.0 - 0.15 * pro);
|
|
30
|
+
t = t * 0.5;
|
|
31
|
+
}
|
|
32
|
+
else if (length(r) < 1.2+z*2.5) {
|
|
33
|
+
uv = zoom(uv, 1.0 - 0.2 * pro);
|
|
34
|
+
t = t * 0.2;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
uv = zoom(uv, 1.0 - 0.25 * pro);
|
|
38
|
+
}
|
|
39
|
+
return mix(getFromColor(uv), getToColor(uv), t);
|
|
40
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// ZoomLeftWipe — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ZoomLeftWipe.glsl
|
|
2
|
+
// Author: Handk
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Zooms into the outgoing image, then the incoming one wipes in from right to left
|
|
5
|
+
// Tags: zoom, wipe, horizontal
|
|
6
|
+
|
|
7
|
+
// @param Part of the first half spent zooming (capped at 0.5)
|
|
8
|
+
uniform float zoom_quickness; // = 0.8
|
|
9
|
+
vec2 zoom(vec2 uv, float amount) {
|
|
10
|
+
if(amount<0.5)
|
|
11
|
+
return 0.5 + ((uv - 0.5) * (1.0-amount));
|
|
12
|
+
else
|
|
13
|
+
return 0.5 + ((uv - 0.5) * (amount));
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
vec4 transition (vec2 uv) {
|
|
18
|
+
float nQuick = clamp(zoom_quickness,0.0,0.5);
|
|
19
|
+
if(progress<0.5){
|
|
20
|
+
vec4 c= mix(
|
|
21
|
+
getFromColor(zoom(uv, smoothstep(0.0, nQuick, progress))),
|
|
22
|
+
getToColor(uv),
|
|
23
|
+
step(0.5, progress)
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return c;
|
|
27
|
+
}
|
|
28
|
+
else{
|
|
29
|
+
vec2 p=uv.xy/vec2(1.0).xy;
|
|
30
|
+
vec4 d=getFromColor(p);
|
|
31
|
+
vec4 e=getToColor(p);
|
|
32
|
+
vec4 f= mix(d, e, step(1.0-p.x,(progress-0.5)*2.0));
|
|
33
|
+
|
|
34
|
+
return f;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// ZoomRigthWipe — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/ZoomRigthWipe.glsl
|
|
2
|
+
// Author: Handk
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Zooms into the outgoing image, then the incoming one wipes in from left to right
|
|
5
|
+
// Tags: zoom, wipe, horizontal
|
|
6
|
+
|
|
7
|
+
// @param Part of the first half spent zooming (capped at 0.5)
|
|
8
|
+
uniform float zoom_quickness; // = 0.8
|
|
9
|
+
vec2 zoom(vec2 uv, float amount) {
|
|
10
|
+
if(amount<0.5)
|
|
11
|
+
return 0.5 + ((uv - 0.5) * (1.0-amount));
|
|
12
|
+
else
|
|
13
|
+
return 0.5 + ((uv - 0.5) * (amount));
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
vec4 transition (vec2 uv) {
|
|
18
|
+
float nQuick = clamp(zoom_quickness,0.0,0.5);
|
|
19
|
+
if(progress<0.5){
|
|
20
|
+
vec4 c= mix(
|
|
21
|
+
getFromColor(zoom(uv, smoothstep(0.0, nQuick, progress))),
|
|
22
|
+
getToColor(uv),
|
|
23
|
+
step(0.5, progress)
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
return c;
|
|
27
|
+
}
|
|
28
|
+
else{
|
|
29
|
+
vec2 p=uv.xy/vec2(1.0).xy;
|
|
30
|
+
vec4 d=getFromColor(p);
|
|
31
|
+
vec4 e=getToColor(p);
|
|
32
|
+
vec4 f= mix(d, e, step(0.0+p.x,(progress-0.5)*2.0));
|
|
33
|
+
|
|
34
|
+
return f;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// angular — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/angular.glsl
|
|
2
|
+
// Author: Fernando Kuteken
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A wipe that sweeps around the center from a starting angle
|
|
5
|
+
// Tags: wipe, radial, clock
|
|
6
|
+
|
|
7
|
+
#define PI 3.141592653589
|
|
8
|
+
|
|
9
|
+
// @range(0, 360) Angle where the wipe starts, in degrees
|
|
10
|
+
uniform float startingAngle; // = 90
|
|
11
|
+
|
|
12
|
+
vec4 transition (vec2 uv) {
|
|
13
|
+
|
|
14
|
+
float offset = startingAngle * PI / 180.0;
|
|
15
|
+
float angle = atan(uv.y - 0.5, uv.x - 0.5) + offset;
|
|
16
|
+
float normalizedAngle = (angle + PI) / (2.0 * PI);
|
|
17
|
+
|
|
18
|
+
normalizedAngle = normalizedAngle - floor(normalizedAngle);
|
|
19
|
+
|
|
20
|
+
return mix(
|
|
21
|
+
getFromColor(uv),
|
|
22
|
+
getToColor(uv),
|
|
23
|
+
step(normalizedAngle, progress)
|
|
24
|
+
);
|
|
25
|
+
}
|
package/glsl3/burn.glsl
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// burn — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/burn.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A crossfade that brightens toward a color in the middle
|
|
5
|
+
// Tags: fade, color, flash
|
|
6
|
+
// @color Color the images brighten toward
|
|
7
|
+
uniform vec3 color /* = vec3(0.9, 0.4, 0.2) */;
|
|
8
|
+
vec4 transition (vec2 uv) {
|
|
9
|
+
return mix(
|
|
10
|
+
getFromColor(uv) + vec4(progress*color, 1.0),
|
|
11
|
+
getToColor(uv) + vec4((1.0-progress)*color, 1.0),
|
|
12
|
+
progress
|
|
13
|
+
);
|
|
14
|
+
}
|
package/glsl3/burn0.glsl
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// burn0 — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/burn0.glsl
|
|
2
|
+
// Author: liubailin2020@gmail.com
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image burns away in noisy, glowing patches
|
|
5
|
+
// Tags: burn, fire, noise
|
|
6
|
+
|
|
7
|
+
// @color Color of the burning edges
|
|
8
|
+
uniform vec3 burnColor; // = vec3(1.0, 0.5, 0.0)
|
|
9
|
+
|
|
10
|
+
float random (in vec2 st) {
|
|
11
|
+
return fract(sin(dot(st.xy,
|
|
12
|
+
vec2(12.9898,78.233)))*
|
|
13
|
+
43758.5453123);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Based on Morgan McGuire @morgan3d
|
|
17
|
+
// https://www.shadertoy.com/view/4dS3Wd
|
|
18
|
+
float noise (in vec2 st) {
|
|
19
|
+
vec2 i = floor(st);
|
|
20
|
+
vec2 f = fract(st);
|
|
21
|
+
|
|
22
|
+
float a = random(i);
|
|
23
|
+
float b = random(i + vec2(1.0, 0.0));
|
|
24
|
+
float c = random(i + vec2(0.0, 1.0));
|
|
25
|
+
float d = random(i + vec2(1.0, 1.0));
|
|
26
|
+
|
|
27
|
+
vec2 u = f * f * (3.0 - 2.0 * f);
|
|
28
|
+
|
|
29
|
+
return mix(a, b, u.x) +
|
|
30
|
+
(c - a)* u.y * (1.0 - u.x) +
|
|
31
|
+
(d - b) * u.x * u.y;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
#define OCTAVES 4
|
|
35
|
+
float fbm (in vec2 st) {
|
|
36
|
+
float value = 0.0;
|
|
37
|
+
float amplitude = .5;
|
|
38
|
+
for (int i = 0; i < OCTAVES; i++) {
|
|
39
|
+
value += amplitude * noise(st);
|
|
40
|
+
st *= 2.;
|
|
41
|
+
amplitude *= .5;
|
|
42
|
+
}
|
|
43
|
+
return value;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
vec4 transition (vec2 uv) {
|
|
47
|
+
if (progress <= 0.0) return getFromColor(uv);
|
|
48
|
+
if (progress >= 1.0) return getToColor(uv);
|
|
49
|
+
vec4 from = getFromColor(uv);
|
|
50
|
+
vec4 to = getToColor(uv);
|
|
51
|
+
float n = fbm(uv * 4.);
|
|
52
|
+
float l = smoothstep(progress, progress + 0.05, n);
|
|
53
|
+
float edge = (1.0 - l) * l * 5.0;
|
|
54
|
+
return mix(to, from, l) + vec4(burnColor, 0.0) * edge;
|
|
55
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// cannabisleaf — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/cannabisleaf.glsl
|
|
2
|
+
// Author: @Flexi23
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A cannabis-leaf shape grows from the center to reveal the incoming image
|
|
5
|
+
// Tags: shape, wipe
|
|
6
|
+
|
|
7
|
+
// inspired by http://www.wolframalpha.com/input/?i=cannabis+curve
|
|
8
|
+
|
|
9
|
+
vec4 transition (vec2 uv) {
|
|
10
|
+
if(progress == 0.0){
|
|
11
|
+
return getFromColor(uv);
|
|
12
|
+
}
|
|
13
|
+
vec2 leaf_uv = (uv - vec2(0.5))/10./pow(progress,3.5);
|
|
14
|
+
leaf_uv.y += 0.35;
|
|
15
|
+
float r = 0.18;
|
|
16
|
+
float o = atan(leaf_uv.y, leaf_uv.x);
|
|
17
|
+
return mix(getFromColor(uv), getToColor(uv), 1.-step(1. - length(leaf_uv)+r*(1.+sin(o))*(1.+0.9 * cos(8.*o))*(1.+0.1*cos(24.*o))*(0.9+0.05*cos(200.*o)), 1.));
|
|
18
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// chessboard — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/chessboard.glsl
|
|
2
|
+
// Author: lql
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A chessboard pattern of squares reveals the incoming image
|
|
5
|
+
// Tags: grid, squares, pattern
|
|
6
|
+
|
|
7
|
+
// @param Number of squares per row
|
|
8
|
+
uniform float grid_num; // = 10.0
|
|
9
|
+
|
|
10
|
+
vec4 transition(vec2 uv) {
|
|
11
|
+
vec2 st = uv * grid_num;
|
|
12
|
+
vec2 idx = floor(st);
|
|
13
|
+
vec2 grid = fract(st);
|
|
14
|
+
|
|
15
|
+
vec4 a = getFromColor(uv);
|
|
16
|
+
vec4 b = getToColor(uv);
|
|
17
|
+
|
|
18
|
+
float checker = mod(idx.x + idx.y, 2.0);
|
|
19
|
+
float mixFactor;
|
|
20
|
+
|
|
21
|
+
if (progress <= 0.5) {
|
|
22
|
+
mixFactor = (checker > 0.5) ? step(grid.x, progress * 2.0) : 0.0;
|
|
23
|
+
} else {
|
|
24
|
+
mixFactor = (checker < 0.5) ? step(grid.x, (progress - 0.5) * 2.0) : 1.0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return mix(a, b, mixFactor);
|
|
28
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// circle — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/circle.glsl
|
|
2
|
+
// Author: Fernando Kuteken
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image closes into a circle over a background color, then the incoming one opens from it
|
|
5
|
+
// Tags: circle, iris, shape
|
|
6
|
+
|
|
7
|
+
// @param Center of the circle
|
|
8
|
+
uniform vec2 center; // = vec2(0.5, 0.5)
|
|
9
|
+
// @color Background color
|
|
10
|
+
uniform vec3 backColor; // = vec3(0.1, 0.1, 0.1)
|
|
11
|
+
|
|
12
|
+
vec4 transition (vec2 uv) {
|
|
13
|
+
|
|
14
|
+
float distance = length(uv - center);
|
|
15
|
+
float radius = sqrt(8.0) * abs(progress - 0.5);
|
|
16
|
+
|
|
17
|
+
if (distance > radius) {
|
|
18
|
+
return vec4(backColor, 1.0);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
if (progress < 0.5) return getFromColor(uv);
|
|
22
|
+
else return getToColor(uv);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// circleopen — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/circleopen.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A soft-edged circle opens from the center to reveal the incoming image
|
|
5
|
+
// Tags: circle, iris, wipe
|
|
6
|
+
// @param Softness of the circle's edge
|
|
7
|
+
uniform float smoothness; // = 0.3
|
|
8
|
+
// @param Open the circle; false closes it instead
|
|
9
|
+
uniform bool opening; // = true
|
|
10
|
+
|
|
11
|
+
const vec2 center = vec2(0.5, 0.5);
|
|
12
|
+
const float SQRT_2 = 1.414213562373;
|
|
13
|
+
|
|
14
|
+
vec4 transition (vec2 uv) {
|
|
15
|
+
float x = opening ? progress : 1.-progress;
|
|
16
|
+
float m = smoothstep(-smoothness, 0.0, SQRT_2*distance(center, uv) - x*(1.+smoothness));
|
|
17
|
+
return mix(getFromColor(uv), getToColor(uv), opening ? 1.-m : m);
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// colorphase — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/colorphase.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A crossfade in which each color channel changes at a different time
|
|
5
|
+
// Tags: fade, color
|
|
6
|
+
|
|
7
|
+
// Usage: fromStep and toStep must be in [0.0, 1.0] range
|
|
8
|
+
// and all(fromStep) must be < all(toStep)
|
|
9
|
+
|
|
10
|
+
// @range(0, 1) When each channel (r, g, b, a) starts changing
|
|
11
|
+
uniform vec4 fromStep; // = vec4(0.0, 0.2, 0.4, 0.0)
|
|
12
|
+
// @range(0, 1) When each channel (r, g, b, a) finishes changing
|
|
13
|
+
uniform vec4 toStep; // = vec4(0.6, 0.8, 1.0, 1.0)
|
|
14
|
+
|
|
15
|
+
vec4 transition (vec2 uv) {
|
|
16
|
+
vec4 a = getFromColor(uv);
|
|
17
|
+
vec4 b = getToColor(uv);
|
|
18
|
+
return mix(a, b, smoothstep(fromStep, toStep, vec4(progress)));
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// coord-from-in — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/coord-from-in.glsl
|
|
2
|
+
// Author: haiyoucuv
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A crossfade in which the colors of one image displace the other
|
|
5
|
+
// Tags: displace, distort, blend
|
|
6
|
+
|
|
7
|
+
vec4 transition (vec2 uv) {
|
|
8
|
+
|
|
9
|
+
vec4 coordTo = getToColor(uv);
|
|
10
|
+
vec4 coordFrom = getFromColor(uv);
|
|
11
|
+
|
|
12
|
+
return mix(
|
|
13
|
+
getFromColor(mix(uv, coordTo.rg, progress)),
|
|
14
|
+
getToColor(mix(coordFrom.rg, uv, progress)),
|
|
15
|
+
progress
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// crosshatch — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/crosshatch.glsl
|
|
2
|
+
// License: MIT
|
|
3
|
+
// Author: pthrasher
|
|
4
|
+
// Description: The incoming image appears through a crosshatch of lines spreading from the center
|
|
5
|
+
// Tags: pattern, lines, noise
|
|
6
|
+
// adapted by gre from https://gist.github.com/pthrasher/04fd9a7de4012cbb03f6
|
|
7
|
+
|
|
8
|
+
// @param Point the lines spread from
|
|
9
|
+
uniform vec2 center; // = vec2(0.5)
|
|
10
|
+
uniform float threshold; // = 3.0
|
|
11
|
+
uniform float fadeEdge; // = 0.1
|
|
12
|
+
|
|
13
|
+
float rand(vec2 co) {
|
|
14
|
+
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
|
15
|
+
}
|
|
16
|
+
vec4 transition(vec2 p) {
|
|
17
|
+
float dist = distance(center, p) / threshold;
|
|
18
|
+
float r = progress - min(rand(vec2(p.y, 0.0)), rand(vec2(0.0, p.x)));
|
|
19
|
+
return mix(getFromColor(p), getToColor(p), mix(0.0, mix(step(dist, r), 1.0, smoothstep(1.0-fadeEdge, 1.0, progress)), smoothstep(0.0, fadeEdge, progress)));
|
|
20
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// crosswarp — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/crosswarp.glsl
|
|
2
|
+
// Author: Eke Péter <peterekepeter@gmail.com>
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The outgoing image zooms in while the incoming one zooms out into place, sweeping from right to left
|
|
5
|
+
// Tags: warp, zoom, horizontal
|
|
6
|
+
vec4 transition(vec2 p) {
|
|
7
|
+
float x = progress;
|
|
8
|
+
x=smoothstep(.0,1.0,(x*2.0+p.x-1.0));
|
|
9
|
+
return mix(getFromColor((p-.5)*(1.-x)+.5), getToColor((p-.5)*x+.5), x);
|
|
10
|
+
}
|
package/glsl3/cube.glsl
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// cube — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/cube.glsl
|
|
2
|
+
// Author: gre
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: The two images are faces of a rotating 3D cube, with a floor reflection
|
|
5
|
+
// Tags: 3d, cube, rotate, reflection
|
|
6
|
+
// @range(0, 1) Amount of perspective
|
|
7
|
+
uniform float persp; // = 0.7
|
|
8
|
+
uniform float unzoom; // = 0.3
|
|
9
|
+
// @range(0, 1) Strength of the reflection
|
|
10
|
+
uniform float reflection; // = 0.4
|
|
11
|
+
uniform float floating; // = 3.0
|
|
12
|
+
|
|
13
|
+
vec2 project (vec2 p) {
|
|
14
|
+
return p * vec2(1.0, -1.2) + vec2(0.0, -floating/100.);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
bool inBounds (vec2 p) {
|
|
18
|
+
return all(lessThan(vec2(0.0), p)) && all(lessThan(p, vec2(1.0)));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
vec4 bgColor (vec2 p, vec2 pfr, vec2 pto) {
|
|
22
|
+
vec4 c = vec4(0.0, 0.0, 0.0, 1.0);
|
|
23
|
+
pfr = project(pfr);
|
|
24
|
+
// FIXME avoid branching might help perf!
|
|
25
|
+
if (inBounds(pfr)) {
|
|
26
|
+
c += mix(vec4(0.0), getFromColor(pfr), reflection * mix(1.0, 0.0, pfr.y));
|
|
27
|
+
}
|
|
28
|
+
pto = project(pto);
|
|
29
|
+
if (inBounds(pto)) {
|
|
30
|
+
c += mix(vec4(0.0), getToColor(pto), reflection * mix(1.0, 0.0, pto.y));
|
|
31
|
+
}
|
|
32
|
+
return c;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// p : the position
|
|
36
|
+
// persp : the perspective in [ 0, 1 ]
|
|
37
|
+
// center : the xcenter in [0, 1] \ 0.5 excluded
|
|
38
|
+
vec2 xskew (vec2 p, float persp, float center) {
|
|
39
|
+
float x = mix(p.x, 1.0-p.x, center);
|
|
40
|
+
return (
|
|
41
|
+
(
|
|
42
|
+
vec2( x, (p.y - 0.5*(1.0-persp) * x) / (1.0+(persp-1.0)*x) )
|
|
43
|
+
- vec2(0.5-distance(center, 0.5), 0.0)
|
|
44
|
+
)
|
|
45
|
+
* vec2(0.5 / distance(center, 0.5) * (center<0.5 ? 1.0 : -1.0), 1.0)
|
|
46
|
+
+ vec2(center<0.5 ? 0.0 : 1.0, 0.0)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
vec4 transition(vec2 op) {
|
|
51
|
+
float uz = unzoom * 2.0*(0.5-distance(0.5, progress));
|
|
52
|
+
vec2 p = -uz*0.5+(1.0+uz) * op;
|
|
53
|
+
vec2 fromP = xskew(
|
|
54
|
+
(p - vec2(progress, 0.0)) / vec2(1.0-progress, 1.0),
|
|
55
|
+
1.0-mix(progress, 0.0, persp),
|
|
56
|
+
0.0
|
|
57
|
+
);
|
|
58
|
+
vec2 toP = xskew(
|
|
59
|
+
p / vec2(progress, 1.0),
|
|
60
|
+
mix(pow(progress, 2.0), 1.0, persp),
|
|
61
|
+
1.0
|
|
62
|
+
);
|
|
63
|
+
// FIXME avoid branching might help perf!
|
|
64
|
+
if (inBounds(fromP)) {
|
|
65
|
+
return getFromColor(fromP);
|
|
66
|
+
}
|
|
67
|
+
else if (inBounds(toP)) {
|
|
68
|
+
return getToColor(toP);
|
|
69
|
+
}
|
|
70
|
+
return bgColor(op, fromP, toP);
|
|
71
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// directional-easing — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/directional-easing.glsl
|
|
2
|
+
// Author: Max Plotnikov
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: Like Directional, with an eased movement
|
|
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
|
+
float easing = sqrt((2.0 - progress) * progress);
|
|
12
|
+
vec2 p = uv + easing * sign(direction);
|
|
13
|
+
vec2 f = fract(p);
|
|
14
|
+
return mix(
|
|
15
|
+
getToColor(f),
|
|
16
|
+
getFromColor(f),
|
|
17
|
+
step(0.0, p.y) * step(p.y, 1.0) * step(0.0, p.x) * step(p.x, 1.0)
|
|
18
|
+
);
|
|
19
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// directionalwarp — GLSL ES 3.00, generated from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/directionalwarp.glsl
|
|
2
|
+
// Author: pschroen
|
|
3
|
+
// License: MIT
|
|
4
|
+
// Description: A diagonal wipe with a warped, smeared edge
|
|
5
|
+
// Tags: wipe, warp, directional
|
|
6
|
+
|
|
7
|
+
// @param Softness of the edge
|
|
8
|
+
uniform float smoothness; // = 0.1
|
|
9
|
+
// @param Direction of the wipe
|
|
10
|
+
uniform vec2 direction; // = vec2(-1.0, 1.0)
|
|
11
|
+
|
|
12
|
+
const vec2 center = vec2(0.5, 0.5);
|
|
13
|
+
|
|
14
|
+
vec4 transition (vec2 uv) {
|
|
15
|
+
vec2 v = normalize(direction);
|
|
16
|
+
v /= abs(v.x) + abs(v.y);
|
|
17
|
+
float d = v.x * center.x + v.y * center.y;
|
|
18
|
+
float m = 1.0 - smoothstep(-smoothness, 0.0, v.x * uv.x + v.y * uv.y - (d - 0.5 + progress * (1.0 + smoothness)));
|
|
19
|
+
return mix(getFromColor((uv - 0.5) * (1.0 - m) + 0.5), getToColor((uv - 0.5) * m + 0.5), m);
|
|
20
|
+
}
|