-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patheffect_frame.frag
44 lines (37 loc) · 1.25 KB
/
effect_frame.frag
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
///////////////////////////////////////////////////////
//*-------------------------------------------------*//
//| Part of Project One (https://www.maus-games.at) |//
//*-------------------------------------------------*//
//| Copyright (c) 2010 Martin Mauersics |//
//| Released under the zlib License |//
//*-------------------------------------------------*//
///////////////////////////////////////////////////////
// TODO 3: anti-alias borders (would need 2 taps)
void FragmentMain()
{
//
float v1Sin = sin(v_av2TexCoord[1].x);
float v1Cos = cos(v_av2TexCoord[1].x);
mat2 m2Rota = mat2(v1Cos, v1Sin, -v1Sin, v1Cos);
//
vec2 v2Coord = v_av2TexCoord[0];
float v1Thresh = 1.0;
float v1Border = 0.0;
for(int i = 0; i < 5; ++i)
{
//
v2Coord = m2Rota * v2Coord;
v1Thresh = v1Thresh * 0.65;
//
float v1Len = max(abs(v2Coord.x), abs(v2Coord.y));
if(v1Len >= v1Thresh)
{
//
v1Border = (1.0 - smoothstep(v1Thresh, v1Thresh + 0.1, v1Len)) * 0.2;
break;
}
}
//
float v1Value = coreTexture2D(0, v2Coord * 1.5).r;
gl_FragColor = vec4(vec3(mix(v1Value, 1.0, v1Border)), u_v4Color.a);
}