@@ -33,7 +33,7 @@ and the `reverse` option to reverse the easing and/or transition effect
3333* ** custom expression** :
3434set the xfade ` transition ` option to ` custom ` and the ` expr ` option to the concatenation of a standard easing expression and a transition expression
3535(this variant does not support CSS easings or reversed effects). \
36- * Example* (quartic-out,radial): \
36+ * Example* (quartic-out, radial): \
3737` xfade=duration=3:offset=10:transition=custom:expr='st(0,P^4); ` \
3838` st(1,atan2(X-W/2,Y-H/2)-(ld(0)-0.5)*PI*2.5); st(1,st(1,clip(ld(1),0,1))*ld(1)*(3-2*ld(1))); B*ld(1)+A*(1-ld(1))' ` \
3939Pre-generated [ expressions] ( expr ) can be copied verbatim from supplied files.
@@ -239,35 +239,29 @@ st(0,cos((1-P)*20.944)/2^(10*(1-P)))
239239
240240This format is best for expressions that are too unwieldy for inline ffmpeg commands.
241241
242- * Example* : ` gl_rotate_scale_fade ` transition (expects eased progress in ` ld(0)` ) (cf. [rotate_scale_fade .glsl](https://github.com/gl-transitions/gl-transitions/blob/master/transitions/rotate_scale_fade .glsl))
242+ * Example* : ` gl_Swirl ` transition (expects eased progress in ` ld(0)` ) (cf. [Swirl .glsl](https://github.com/gl-transitions/gl-transitions/blob/master/transitions/Swirl .glsl))
243243` ` `
244- st(1, 0.5);
245- st(2, 0.5);
246- st(3, 1);
247- st(4, 8);
248- st(5, X / W - ld(1));
249- st(6, 1 - Y / H - ld(2));
250- st(7, hypot(ld(5), ld(6)));
251- st(5, ld(5) / ld(7));
252- st(6, ld(6) / ld(7));
253- st(8, 2 * abs(ld(0) - 0.5));
254- st(8, ld(7) / (ld(4) * (1 - ld(8)) + ld(8)));
255- st(3, 2 * PI * ld(3) * (1 - ld(0)));
256- st(4, sin(ld(3)));
257- st(3, cos(ld(3)));
258- st(7, ld(5) * ld(3) - ld(6) * ld(4));
259- st(6, ld(5) * ld(4) + ld(6) * ld(3));
260- st(1, ld(1) + ld(7) * ld(8));
261- st(2, ld(2) + ld(6) * ld(8));
262- if(between(ld(1), 0, 1) * between(ld(2), 0, 1),
263- st(1, ld(1) * W);
264- st(2, (1 - ld(2)) * H);
265- st(3, ifnot(PLANE, a0(ld(1),ld(2)), ifnot(1-PLANE, a1(ld(1),ld(2)), ifnot(2-PLANE, a2(ld(1),ld(2)), a3(ld(1),ld(2))))));
266- st(4, ifnot(PLANE, b0(ld(1),ld(2)), ifnot(1-PLANE, b1(ld(1),ld(2)), ifnot(2-PLANE, b2(ld(1),ld(2)), b3(ld(1),ld(2))))));
267- ld(4) * (1 - ld(0)) + ld(3) * ld(0),
268- st(1, 0.15);
269- if(3-PLANE, max(ld(1), 0), gte(ld(1), 0)) * 255
270- )
244+ st(1, 1);
245+ st(2, 1);
246+ st(3, X / W - 0.5);
247+ st(4, 0.5 - Y / H);
248+ st(5, hypot(ld(3), ld(4)));
249+ if(lt(ld(5), ld(1)),
250+ st(1, (ld(1) - ld(5)) / ld(1));
251+ st(5, 1 - 2 * abs(ld(0) - 0.5));
252+ st(1, ld(1) * ld(1) * ld(5) * 8 * PI);
253+ ifnot(ld(2), st(1, -ld(1)));
254+ st(5, sin(ld(1)));
255+ st(6, cos(ld(1)));
256+ st(1, ld(3) * ld(6) - ld(4) * ld(5));
257+ st(4, ld(3) * ld(5) + ld(4) * ld(6));
258+ st(3, ld(1))
259+ );
260+ st(3, (ld(3) + 0.5) * W);
261+ st(4, (0.5 - ld(4)) * H);
262+ st(5, ifnot(PLANE, a0(ld(3),ld(4)), ifnot(1-PLANE, a1(ld(3),ld(4)), ifnot(2-PLANE, a2(ld(3),ld(4)), a3(ld(3),ld(4))))));
263+ st(6, ifnot(PLANE, b0(ld(3),ld(4)), ifnot(1-PLANE, b1(ld(3),ld(4)), ifnot(2-PLANE, b2(ld(3),ld(4)), b3(ld(3),ld(4))))));
264+ ld(6) * (1 - ld(0)) + ld(5) * ld(0)
271265` ` `
272266
273267# ## Uneased, for transitions without easing
@@ -479,45 +473,47 @@ All GLSL transitions adapted to the [GL Transition Specification](https://github
479473
480474The following list shows the transition names, customisation parameters and defaults, and authors:
481475
476+ # ### GLSL gallery
477+
482478| transition | parameters (=default) | author |
483479| :--------: | :-------------------: | :----: |
484480| gl_angular | ` startingAngle=90` < br> ` clockwise=0` | Fernando Kuteken |
485481| gl_Bars | ` vertical=0` | Mark Craig |
486- | gl_blend< sup> * < /sup> | ` mode=0` | scriptituk |
482+ | gl_blend< sup> ※ < /sup> | ` mode=0` | scriptituk |
487483| gl_BookFlip | | hong |
488484| gl_Bounce | ` bounces=3` < br> ` direction=0` < br> ` shadowAlpha=0.6` < br> ` shadowHeight=0.075` < br> ` shadowColor=0` | Adrian Purser |
489- | gl_BowTie< sup> * < /sup> | ` vertical=0` | huynx |
490- | gl_ButterflyWaveScrawler< sup> * < /sup> | ` amplitude=1` < br> ` waves=30` < br> ` colorSeparation=0.3` | mandubian |
485+ | gl_BowTie< sup> ※ < /sup> | ` vertical=0` | huynx |
486+ | gl_ButterflyWaveScrawler< sup> ※ < /sup> | ` amplitude=1` < br> ` waves=30` < br> ` colorSeparation=0.3` | mandubian |
491487| gl_cannabisleaf | | Flexi23 |
492488| gl_chessboard | ` grid=8` | lql |
493489| gl_CornerVanish | | Mark Craig |
494490| gl_CrazyParametricFun | ` a=4` < br> ` b=1` < br> ` amplitude=120` < br> ` smoothness=0.1` | mandubian |
495491| gl_crosshatch | ` center.x=0.5` < br> ` center.y=0.5` < br> ` threshold=3` < br> ` fadeEdge=0.1` | pthrasher |
496492| gl_CrossOut | ` smoothness=0.05` | Mark Craig |
497493| gl_crosswarp | | Eke Péter |
498- | gl_CrossZoom< sup> * < /sup> | ` strength=0.4` < br> ` centerFrom.x=0.25` < br> ` centerFrom.y=0.5` < br> ` centerTo.x=0.75` < br> ` centerTo.y=0.5` | rectalogic |
494+ | gl_CrossZoom< sup> ※ < /sup> | ` strength=0.4` < br> ` centerFrom.x=0.25` < br> ` centerFrom.y=0.5` < br> ` centerTo.x=0.75` < br> ` centerTo.y=0.5` | rectalogic |
499495| gl_cube | ` persp=0.7` < br> ` unzoom=0.3` < br> ` reflection=0.4` < br> ` floating=3` < br> ` background=0` | gre |
500496| gl_Diamond | ` smoothness=0.05` | Mark Craig |
501497| gl_DirectionalScaled | ` direction.x=0` < br> ` direction.y=1` < br> ` scale=0.7` < br> ` background=0` | Thibaut Foussard |
502498| gl_directionalwarp | ` smoothness=0.1` < br> ` direction.x=-1` < br> ` direction.y=1` | pschroen |
503499| gl_doorway | ` reflection=0.4` < br> ` perspective=0.4` < br> ` depth=3` < br> ` background=0` | gre |
504500| gl_DoubleDiamond | ` smoothness=0.05` | Mark Craig |
505501| gl_Dreamy | | mikolalysenko |
506- | gl_EdgeTransition< sup> * < /sup> | ` edgeThickness=0.001` < br> ` edgeBrightness=8` | Woohyun Kim |
507- | gl_Exponential_Swish< sup> * < /sup> | ` zoom=0.8` < br> ` angle=0` < br> ` offset.x=0` < br> ` offset.y=0` < br> ` exponent=4` < br> ` wrap.x=2` < br> ` wrap.y=2` < br> ` blur=0` < br> ` background=0` | Boundless |
508- | gl_fadecolor< sup> * < /sup> | ` color=0` < br> ` colorPhase=0.4` | gre |
502+ | gl_EdgeTransition< sup> ※ < /sup> | ` edgeThickness=0.001` < br> ` edgeBrightness=8` | Woohyun Kim |
503+ | gl_Exponential_Swish< sup> ※ < /sup> | ` zoom=0.8` < br> ` angle=0` < br> ` offset.x=0` < br> ` offset.y=0` < br> ` exponent=4` < br> ` wrap.x=2` < br> ` wrap.y=2` < br> ` blur=0` < br> ` background=0` | Boundless |
504+ | gl_fadecolor< sup> ※ < /sup> | ` color=0` < br> ` colorPhase=0.4` | gre |
509505| gl_FanIn | ` smoothness=0.05` | Mark Craig |
510506| gl_FanOut | ` smoothness=0.05` | Mark Craig |
511507| gl_FanUp | ` smoothness=0.05` | Mark Craig |
512508| gl_Flower | ` smoothness=0.05` < br> ` rotation=360` | Mark Craig |
513- | gl_GridFlip< sup> * < /sup> | ` size.x=4` < br> ` size.y=4` < br> ` pause=0.1` < br> ` dividerWidth=0.05` < br> ` randomness=0.1` < br> ` background=0` | TimDonselaar |
509+ | gl_GridFlip< sup> ※ < /sup> | ` size.x=4` < br> ` size.y=4` < br> ` pause=0.1` < br> ` dividerWidth=0.05` < br> ` randomness=0.1` < br> ` background=0` | TimDonselaar |
514510| gl_heart | | gre |
515511| gl_hexagonalize | ` steps=50` < br> ` horizontalHexagons=20` | Fernando Kuteken |
516512| gl_InvertedPageCurl | ` angle=100` < br> ` radius=0.159` < br> ` reverseEffect=0` | Hewlett-Packard |
517513| gl_kaleidoscope | ` speed=1` < br> ` angle=1` < br> ` power=1.5` | nwoeanhinnogaehr |
518514| gl_LinearBlur | ` intensity=0.1` | gre |
519- | gl_Lissajous_Tiles< sup> * < /sup> | ` grid.x=10` < br> ` grid.y=10` < br> ` speed=0.5` < br> ` freq.x=2` < br> ` freq.y=3` < br> ` offset=2` < br> ` zoom=0.8` < br> ` fade=3` < br> ` background=0` | Boundless |
520- | gl_morph< sup> * < /sup> | ` strength=0.1` | paniq |
515+ | gl_Lissajous_Tiles< sup> ※ < /sup> | ` grid.x=10` < br> ` grid.y=10` < br> ` speed=0.5` < br> ` freq.x=2` < br> ` freq.y=3` < br> ` offset=2` < br> ` zoom=0.8` < br> ` fade=3` < br> ` background=0` | Boundless |
516+ | gl_morph< sup> ※ < /sup> | ` strength=0.1` | paniq |
521517| gl_Mosaic | ` endx=2` < br> ` endy=-1` | Xaychru |
522518| gl_perlin | ` scale=4` < br> ` smoothness=0.01` | Rich Harris |
523519| gl_pinwheel | ` speed=2` | Mr Speaker |
@@ -531,24 +527,22 @@ The following list shows the transition names, customisation parameters and defa
531527| gl_RotateScaleVanish | ` fadeInSecond=1` < br> ` reverseEffect=0` < br> ` reverseRotation=0` < br> ` background=0` < br> ` trkMat=0` | Mark Craig |
532528| gl_rotateTransition | | haiyoucuv |
533529| gl_rotate_scale_fade | ` centre.x=0.5` < br> ` centre.y=0.5` < br> ` rotations=1` < br> ` scale=8` < br> ` background=0.15` | Fernando Kuteken |
534- | gl_SimpleBookCurl< sup> * < /sup> | ` angle=150` < br> ` radius=0.1` < br> ` shadow=0.2` | scriptituk |
530+ | gl_SimpleBookCurl< sup> ※ < /sup> | ` angle=150` < br> ` radius=0.1` < br> ` shadow=0.2` | scriptituk |
535531| gl_SimplePageCurl | ` angle=80` < br> ` radius=0.15` < br> ` roll=0` < br> ` reverseEffect=0` < br> ` greyBack=0` < br> ` opacity=0.8` < br> ` shadow=0.2` | Andrew Hung |
536532| gl_Slides | ` type=0` < br> ` slideIn=0` | Mark Craig |
537533| gl_squareswire | ` squares.x=10` < br> ` squares.y=10` < br> ` direction.x=1.0` < br> ` direction.y=-0.5` < br> ` smoothness=1.6` | gre |
538- | gl_StageCurtains< sup> * < /sup> | ` color=0xCC1A33FF` < br> ` bumps=15` < br> ` drop=0.1` | scriptituk |
534+ | gl_StageCurtains< sup> ※ < /sup> | ` color=0xCC1A33FF` < br> ` bumps=15` < br> ` drop=0.1` | scriptituk |
539535| gl_StarWipe | ` borderThickness=0.01` < br> ` starRotation=0.75` < br> ` borderColor=1` | Ben Lucas |
540536| gl_static_wipe | ` upToDown=1` < br> ` maxSpan=0.5` | Ben Lucas |
541- | gl_StereoViewer< sup> * < /sup> | ` zoom=0.9` < br> ` radius=0.25` < br> ` flip=0` < br> ` background=0` < br> ` trkMat=0` | Ted Schundler |
542- | gl_Stripe_Wipe< sup> * < /sup> | ` nlayers=3` < br> ` layerSpread=0.5` < br> ` color1=0x3319CCFF` < br> ` color2=0x66CCFFFF` < br> ` shadowIntensity=0.7` < br> ` shadowSpread=0` < br> ` angle=0` | Boundless |
537+ | gl_StereoViewer< sup> ※ < /sup> | ` zoom=0.9` < br> ` radius=0.25` < br> ` flip=0` < br> ` background=0` < br> ` trkMat=0` | Ted Schundler |
538+ | gl_Stripe_Wipe< sup> ※ < /sup> | ` nlayers=3` < br> ` layerSpread=0.5` < br> ` color1=0x3319CCFF` < br> ` color2=0x66CCFFFF` < br> ` shadowIntensity=0.7` < br> ` shadowSpread=0` < br> ` angle=0` | Boundless |
543539| gl_swap | ` reflection=0.4` < br> ` perspective=0.2` < br> ` depth=3` < br> ` background=0` | gre |
544- | gl_Swirl | ` radius=1` | Sergey Kosarevsky |
540+ | gl_Swirl | ` radius=1` < br > ` clockwise=1 ` | Sergey Kosarevsky |
545541| gl_WaterDrop | ` amplitude=30` < br> ` speed=30` | Paweł Płóciennik |
546542| gl_windowblinds | | Fabien Benetou |
547543| gl_windowslice | ` count=10` < br> ` smoothness=0.5` | gre |
548544
549- < sup> * < /sup> native build only
550-
551- # ### GLSL gallery
545+ < sup> ※< /sup> native build only
552546
553547< ! -- GL pics at https://github.com/gre/gl-transition-libs/tree/master/packages/website/src/images/raw -->
554548
623617 - ` reverseEffect` produces an uncurl effect (custom ffmpeg only)
624618- ` gl_RotateScaleVanish` has an additional ` trkMat` parameter (track matte, custom ffmpeg only) which treats the moving image/video as a variable-transparency overlay – see Dr Who example under [Transparency](# transparency)
625619- ` gl_StereoViewer` (custom ffmpeg only) has an additional ` flip` parameter to flip the split angles, a ` background` parameter and a ` trkMat` parameter
620+ - ` gl_Swirl` has an additional ` clockwise` parameter to change direction
626621- this implementation provides a ` background` parameter for all GL Transitions that show a black background during their transition, e.g. ` gl_cube` and ` gl_doorway` , see [Colour parameters](# colour-parameters) and [Backgrounds](#backgrounds).
627622
628623* Example* : ` gl_InvertedPageCurl` 30° with uncurl
@@ -1144,7 +1139,7 @@ Other faster ways to use GL Transitions with FFmpeg are:
11441139# ## Usage
11451140
11461141` ` `
1147- FFmpeg XFade easing and extensions version 3.5.2 by Raymond Luckhurst, https://scriptit.uk
1142+ FFmpeg XFade easing and extensions version 3.6.0 by Raymond Luckhurst, https://scriptit.uk
11481143Wrapper script to render eased XFade/GLSL transitions natively or with custom expressions.
11491144Generates easing and transition expressions for xfade and for easing other filters.
11501145Also creates easing graphs, demo videos, presentations and slideshows.
0 commit comments