Skip to content

Commit

Permalink
Add transitions (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
exeldro authored Jan 6, 2024
1 parent bec5283 commit ba63bcc
Show file tree
Hide file tree
Showing 3 changed files with 322 additions and 52 deletions.
20 changes: 20 additions & 0 deletions data/examples/fade-transition.shader
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
uniform texture2d image_a;
uniform texture2d image_b;
uniform float transition_time<
string label = "Transittion Time";
string widget_type = "slider";
float minimum = 0.0;
float maximum = 1.0;
float step = 0.001;
> = 0.5;
uniform bool convert_linear = true;

float4 mainImage(VertData v_in) : TARGET
{
float4 a_val = image_a.Sample(textureSampler, v_in.uv);
float4 b_val = image_b.Sample(textureSampler, v_in.uv);
float4 rgba = lerp(a_val, b_val, transition_time);
if(convert_linear)
rgba.rgb = srgb_nonlinear_to_linear(rgba.rgb);
return rgba;
}
52 changes: 52 additions & 0 deletions data/examples/pixelation-transition.shader
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
uniform float transition_time<
string label = "Transittion Time";
string widget_type = "slider";
float minimum = 0.0;
float maximum = 1.0;
float step = 0.001;
> = 0.5;
uniform bool convert_linear = true;
uniform float power<
string label = "Power";
string widget_type = "slider";
float minimum = 0.5;
float maximum = 8.0;
float step = 0.01;
> = 3.0;
uniform float center_x<
string label = "X";
string widget_type = "slider";
string group = "Center";
float minimum = 0.0;
float maximum = 1.0;
float step = 0.001;
> = 0.5;
uniform float center_y<
string label = "Y";
string widget_type = "slider";
string group = "Center";
float minimum = 0.0;
float maximum = 1.0;
float step = 0.001;
> = 0.5;

float4 mainImage(VertData v_in) : TARGET
{
//1..0..1
float scale = abs(transition_time - 0.5) * 2.0;
scale = pow(scale, power);

float2 uv = v_in.uv;
uv -= float2(center_x, center_y);
uv *= uv_size;
uv *= scale;
uv = floor(uv);
uv /= scale;
uv /= uv_size;
uv += float2(center_x, center_y);
uv = clamp(uv, 1.0/uv_size, 1.0);
float4 rgba = image.Sample(textureSampler, uv);
if(convert_linear)
rgba.rgb = srgb_nonlinear_to_linear(rgba.rgb);
return rgba;
}
Loading

0 comments on commit ba63bcc

Please sign in to comment.