bc7db92104b2582d4b3d1d0f04b0e77c272425ad
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / scoretext.vs
1 #include "vertex_standard.glsl"
2
3 uniform mat4 uPv;
4 uniform mat4x3 uMdl;
5
6 uniform vec3 uInfo;
7
8 out vec4 aColour;
9 out vec2 aUv;
10 out vec3 aNorm;
11 out vec3 aCo;
12 out vec3 aWorldCo;
13
14 void main()
15 {
16 float w = a_colour.g + fract(uInfo.z+0.5)-0.75;
17 float c = -cos(w*0.2);
18 float s = -sin(w*0.2);
19 float r = 0.2;
20
21 float w1 = clamp( w*4.0 - a_co.y*10.0, -1.0, 1.0 ) *(3.14159265*0.5);
22 float c1 = cos(w1);
23 float s1 = sin(w1);
24
25 float yoff = step(0.01,fract(uInfo.z))*-0.5;
26
27 mat4x3 mlocal;
28 mlocal[0] = vec3(c1, s1,0.0);
29 mlocal[1] = vec3(-s1,c1,0.0);
30 mlocal[2] = vec3(0.0,0.0,1.0);
31 mlocal[3] = vec3(c*r,uInfo.y*0.875 + s*r,uInfo.x*0.5);
32
33 vec3 world_pos = uMdl * vec4(mlocal * vec4(a_co,1.0),1.0);
34 gl_Position = uPv * vec4( world_pos, 1.0 );
35 aColour = a_colour;
36 aUv = a_uv + vec2( floor(uInfo.z+0.5)*(1.0/64.0), yoff );
37 aNorm = mat3(uMdl) * mat3(mlocal) * a_norm;
38 aCo = a_co;
39 aWorldCo = world_pos;
40 }