Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
rodlie committed Sep 22, 2023
2 parents b9868ca + 64b226b commit fe5947f
Show file tree
Hide file tree
Showing 92 changed files with 6,127 additions and 0 deletions.
46 changes: 46 additions & 0 deletions wip/Version 1.0/BookFlip.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/* Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/BookFlip.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph
Opengl version 3.3*/
#version 330 core

layout(location = 0) out vec4 fragColor;
layout(pixel_center_integer) in vec4 gl_FragCoord;
uniform sampler2D texture;
in vec2 texCoord;

uniform float progress;

vec2 skewRight(vec2 p) {
float skewX = (p.x - progress)/(0.5 - progress) * 0.5;
float skewY = (p.y - 0.5)/(0.5 + progress * (p.x - 0.5) / 0.5)* 0.5 + 0.5;
return vec2(skewX, skewY);
}

vec2 skewLeft(vec2 p) {
float skewX = (p.x - 0.5)/(progress - 0.5) * 0.5 + 0.5;
float skewY = (p.y - 0.5) / (0.5 + (1.0 - progress ) * (0.5 - p.x) / 0.5) * 0.5 + 0.5;
return vec2(skewX, skewY);
}

vec4 addShade() {
float shadeVal = max(0.7, abs(progress - 0.5) * 2.0);
return vec4(vec3(shadeVal ), 1.0);
}

vec4 transition (vec2 p) {
float pr = step(1.0 - progress, p.x);

if (p.x < 0.5) {
return mix(texture2D(texture,p), vec4(1.0)* addShade(), pr);
} else {
return mix(texture2D(texture,skewRight(p)) * addShade(), vec4(0.0), pr);
}
}

void main(void)
{

fragColor = transition(texCoord);
}

8 changes: 8 additions & 0 deletions wip/Version 1.0/BookFlip.gre
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!-- Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/BookFlip.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph-->
<ShaderEffect name="Book Flip" menuPath="Transitions">
<Properties>
<Property name="progress" nameUI="Progress" type="float" min="0.0" max="1.0" ini="0.01" step ="0.01" glValue="true"/>
</Properties>
</ShaderEffect>
80 changes: 80 additions & 0 deletions wip/Version 1.0/DoomScreenTransition.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/* Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/DoomScreenTransition.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph
Opengl version 3.3*/
#version 330 core
precision mediump float;

layout(location = 0) out vec4 fragColor;
layout(pixel_center_integer) in vec4 gl_FragCoord;
uniform sampler2D texture;
uniform vec2 resolution;
in vec2 texCoord;

uniform float progress;// = 0.01;
// Transition parameters --------

// Number of total bars/columns
uniform int bars; // = 30; //

// Multiplier for speed ratio. 0 = no variation when going down, higher = some elements go much faster
uniform float amplitude ; // = 2.0; //

// Further variations in speed. 0 = no noise, 1 = super noisy (ignore frequency)
uniform float noise ; // = 0.1; //

// Speed variation horizontally. the bigger the value, the shorter the waves
uniform float frequency; // = 0.5; //

// How much the bars seem to "run" from the middle of the screen first (sticking to the sides). 0 = no drip, 1 = curved drip
uniform float dripScale; // = 0.5; //


// The code proper --------

float rand(int num) {
return fract(mod(float(num) * 67123.313, 12.0) * sin(float(num) * 10.3) * cos(float(num)));
}

float wave(int num) {
float fn = float(num) * frequency * 0.1 * float(bars);
return cos(fn * 0.5) * cos(fn * 0.13) * sin((fn+10.0) * 0.3) / 2.0 + 0.5;
}

float drip(int num) {
return sin(float(num) / float(bars - 1) * 3.141592) * dripScale;
}

float pos(int num) {
return (noise == 0.0 ? wave(num) : mix(wave(num), rand(num), noise)) + (dripScale == 0.0 ? 0.0 : drip(num));
}

vec4 transition(vec2 uv) {
int bar = int(uv.x * (float(bars)));
float scale = 1.0 + pos(bar) * amplitude;
float phase = progress * scale;
float posY = uv.y / vec2(1.0).y;
vec2 p;
vec4 c;
if (phase + posY < 1.0) {
p = vec2(uv.x, uv.y + mix(0.0, vec2(1.0).y, phase)) / vec2(1.0).xy;
c = texture2D(texture,p);
} else {
p = uv.xy / vec2(1.0).xy;
c = vec4(0.0); // for future use
}

// Finally, apply the color
return c;
}

void main(void)
{
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = gl_FragCoord.xy/resolution.xy;


// Output to screen
fragColor = transition(uv);
}

16 changes: 16 additions & 0 deletions wip/Version 1.0/DoomScreenTransition.gre
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<!-- Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/DoomScreenTransition.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph-->
<ShaderEffect name="Doom Screen" menuPath="Transitions">
<Properties>
<Property name="progress" nameUI="Progress" type="float" min="0.0" max="1.0" ini="0.01" step ="0.01" glValue="true"/>
<Property name="bars" nameUI="Bars" type="int" min="0" max="100" ini="30" step ="1" glValue="true"/>
<Property name="amplitude" nameUI="Amplitude" type="float" min="0.0" max="100.0" ini="2.0" step ="0.1" glValue="true"/>
<Property name="noise" nameUI="Noise" type="float" min="0.0" max="1.0" ini="0.1" step ="0.01" glValue="true"/>
<Property name="frequency" nameUI="Frequency" type="float" min="0.0" max="10.0" ini="0.5" step ="0.01" glValue="true"/>
<Property name="dripScale" nameUI="Drip Scale" type="float" min="0.0" max="10.0" ini="0.5" step ="0.01" glValue="true"/>
</Properties>
<glValues>
<glValue name="resolution" type="vec2" value="[_eRect[2], _eRect[3]]"/>
</glValues>
</ShaderEffect>
27 changes: 27 additions & 0 deletions wip/Version 1.0/HorizontalClose.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/* Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/HorizontalClose.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph
Opengl version 3.3*/
#version 330 core
layout(location = 0) out vec4 fragColor;
layout(pixel_center_integer) in vec4 gl_FragCoord;
uniform sampler2D texture;
in vec2 texCoord;

uniform float progress;
uniform float feather;
vec4 transition (vec2 uv) {

float s = 2.0 - abs((uv.y - 0.5) / (progress - 1.0)) - 2.0 * progress;

return mix(
texture2D(texture,uv),
vec4(0.0),
smoothstep(feather, 0.0 , s)
);
}
void main(void)
{
fragColor = transition(texCoord);
}

9 changes: 9 additions & 0 deletions wip/Version 1.0/HorizontalClose.gre
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/HorizontalClose.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph-->
<ShaderEffect name="Horizontal Close" menuPath="Transitions">
<Properties>
<Property name="progress" nameUI="Progress" type="float" min="0.0" max="1.0" ini="0.1" step ="0.01" glValue="true"/>
<Property name="feather" nameUI="Feather" type="float" min="0.0" max="2.0" ini="0.5" step ="0.01" glValue="true"/>
</Properties>
</ShaderEffect>
39 changes: 39 additions & 0 deletions wip/Version 1.0/LeftRight.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/* Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/LeftRight.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph
Opengl version 3.3*/
#version 330 core
layout(location = 0) out vec4 fragColor;
layout(pixel_center_integer) in vec4 gl_FragCoord;
uniform sampler2D texture;
in vec2 texCoord;

uniform float progress;

const vec4 black = vec4(0.0, 0.0, 0.0, 1.0);
const vec2 boundMin = vec2(0.0, 0.0);
const vec2 boundMax = vec2(1.0, 1.0);

bool inBounds (vec2 p) {
return all(lessThan(boundMin, p)) && all(lessThan(p, boundMax));
}

vec4 transition (vec2 uv) {
vec2 spfr,spto = vec2(-1.);

float size = mix(1.0, 3.0, progress*0.2);
spto = (uv + vec2(-0.5,-0.5))*vec2(size,size)+vec2(0.5,0.5);
spfr = (uv - vec2(1.-progress, 0.0));
if(inBounds(spfr)){
return vec4(0.0);
}else if(inBounds(spto)){
return texture2D(texture,spto) * (1.0 - progress);
} else{
return black;
}
}
void main(void)
{
fragColor = transition(texCoord);
}

8 changes: 8 additions & 0 deletions wip/Version 1.0/LeftRight.gre
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!-- Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/LeftRight.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph-->
<ShaderEffect name="Left Right" menuPath="Transitions">
<Properties>
<Property name="progress" nameUI="Progress" type="float" min="0.0" max="1.0" ini="0.1" step ="0.01" glValue="true"/>
</Properties>
</ShaderEffect>
32 changes: 32 additions & 0 deletions wip/Version 1.0/PolkaDotsCurtain.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/PolkaDotsCurtain.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph
Opengl version 3.3*/
#version 330 core

layout(location = 0) out vec4 fragColor;
layout(pixel_center_integer) in vec4 gl_FragCoord;
uniform sampler2D texture;
in vec2 texCoord;
uniform vec2 resolution;

const float SQRT_2 = 1.414213562373;

uniform float progress;
uniform float dots;
uniform vec2 center;

vec4 transition(vec2 uv) {
float ar = resolution.x/resolution.y;
uv.x*=ar;
bool nextImage = distance(fract(uv * dots), vec2(0.5, 0.5)) < ( progress / distance(uv, center));
uv.x/=ar;
// return nextImage ? vec4(0.0) : texture2D(texture,uv);
return nextImage ? texture2D(texture,uv) : vec4(0.0);
}

void main(void)
{
fragColor = transition(texCoord);
}

13 changes: 13 additions & 0 deletions wip/Version 1.0/PolkaDotsCurtain.gre
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<!-- Adapted from https://github.com/gl-transitions/gl-transitions/blob/master/transitions/PolkaDotsCurtain.glsl
License: MIT
Rebuilt for enve/friction by axiomgraph-->
<ShaderEffect name="Polka Dots Curtain" menuPath="Transitions">
<Properties>
<Property name="progress" nameUI="Progress" type="float" min="0.0" max="2.0" ini="0.01" step ="0.01" glValue="true"/>
<Property name="dots" nameUI="Dots" type="float" min="0.0" max="1000.0" ini="20.0" step ="0.1" glValue="true"/>
<Property name="center" nameUI="Center" type="vec2" min="0.0" max="100.0" ini="0.0" step ="0.1" glValue="true"/>
</Properties>
<glValues>
<glValue name="resolution" type="vec2" value="[_eRect[2], _eRect[3]]"/>
</glValues>
</ShaderEffect>
91 changes: 91 additions & 0 deletions wip/Version 1.0/VHS.frag
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
/* Adapted from https://www.shadertoy.com/view/XtBXDt
Rebuilt for enve/friction by axiomgraph
Opengl version 3.3*/

#version 330 core
#define PI 3.14159265


layout(location = 0) out vec4 fragColor;
layout(pixel_center_integer) in vec4 gl_FragCoord;

uniform sampler2D texture;

uniform vec2 resolution;
in vec2 texCoord;

uniform float time;

vec3 tex2D( sampler2D texture, vec2 _p ){
vec3 col = texture2D( texture, _p ).xyz;
if ( 0.5 < abs( _p.x - 0.5 ) ) {
col = vec3( 0.1 );
}
return col;
}

float hash( vec2 _v ){
return fract( sin( dot( _v, vec2( 89.44, 19.36 ) ) ) * 22189.22 );
}

float iHash( vec2 _v, vec2 _r ){
float h00 = hash( vec2( floor( _v * _r + vec2( 0.0, 0.0 ) ) / _r ) );
float h10 = hash( vec2( floor( _v * _r + vec2( 1.0, 0.0 ) ) / _r ) );
float h01 = hash( vec2( floor( _v * _r + vec2( 0.0, 1.0 ) ) / _r ) );
float h11 = hash( vec2( floor( _v * _r + vec2( 1.0, 1.0 ) ) / _r ) );
vec2 ip = vec2( smoothstep( vec2( 0.0, 0.0 ), vec2( 1.0, 1.0 ), mod( _v*_r, 1. ) ) );
return ( h00 * ( 1. - ip.x ) + h10 * ip.x ) * ( 1. - ip.y ) + ( h01 * ( 1. - ip.x ) + h11 * ip.x ) * ip.y;
}

float noise( vec2 _v ){
float sum = 0.;
for( int i=1; i<9; i++ )
{
sum += iHash( _v + vec2( i ), vec2( 2. * pow( 2., float( i ) ) ) ) / pow( 2., float( i ) );
}
return sum;
}

void main(void){
vec2 uv = gl_FragCoord.xy / resolution;
vec2 uvn = uv;
vec3 col = vec3( 0.0 );

// tape wave
uvn.x += ( noise( vec2( uvn.y, time ) ) - 0.5 )* 0.005;
uvn.x += ( noise( vec2( uvn.y * 100.0, time * 10.0 ) ) - 0.5 ) * 0.01;

// tape crease
float tcPhase = clamp( ( sin( uvn.y * 8.0 - time * PI * 1.2 ) - 0.92 ) * noise( vec2( time ) ), 0.0, 0.01 ) * 10.0;
float tcNoise = max( noise( vec2( uvn.y * 100.0, time * 10.0 ) ) - 0.5, 0.0 );
uvn.x = uvn.x - tcNoise * tcPhase;

// switching noise
float snPhase = smoothstep( 0.03, 0.0, uvn.y );
uvn.y += snPhase * 0.3;
uvn.x += snPhase * ( ( noise( vec2( uv.y * 100.0, time * 10.0 ) ) - 0.5 ) * 0.2 );

col = tex2D( texture, uvn );
col *= 1.0 - tcPhase;
col = mix(
col,
col.yzx,
snPhase
);

// bloom
for( float x = -4.0; x < 2.5; x += 1.0 ){
col.xyz += vec3(
tex2D( texture, uvn + vec2( x - 0.0, 0.0 ) * 7E-3 ).x,
tex2D( texture, uvn + vec2( x - 2.0, 0.0 ) * 7E-3 ).y,
tex2D( texture, uvn + vec2( x - 4.0, 0.0 ) * 7E-3 ).z
) * 0.1;
}
col *= 0.6;

// ac beat
col *= 1.0 + clamp( noise( vec2( 0.0, uv.y + time * 0.2 ) ) * 0.6 - 0.25, 0.0, 0.1 );

fragColor = vec4( col, 1.0 );
}

10 changes: 10 additions & 0 deletions wip/Version 1.0/VHS.gre
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!-- Adapted from https://www.shadertoy.com/view/XtBXDt
Rebuilt for enve/friction by axiomgraph-->
<ShaderEffect name="VHS Effect" menuPath="Distort">
<Properties>
<Property name="time" nameUI="Time" type="float" min="0.0" max="10000.0" ini="12.0" step ="1.0" glValue="true"/>
</Properties>
<glValues>
<glValue name="resolution" type="vec2" value="[_eRect[2], _eRect[3]]"/>
</glValues>
</ShaderEffect>
Loading

0 comments on commit fe5947f

Please sign in to comment.