add motion vectors to all shaders
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / scoretext.vs
index bc7db92104b2582d4b3d1d0f04b0e77c272425ad..ab714d6e5ec228b288efa15e9fb21dd6faa5e2dc 100644 (file)
@@ -1,7 +1,9 @@
 #include "vertex_standard.glsl"
+#include "motion_vectors_vs.glsl"
 
-uniform mat4 uPv;
 uniform mat4x3 uMdl;
+uniform mat4 uPv;
+uniform mat4 uPvmPrev;
 
 uniform vec3 uInfo;
 
@@ -13,12 +15,12 @@ out vec3 aWorldCo;
 
 void main()
 {
-   float w = a_colour.g + fract(uInfo.z+0.5)-0.75;
+   float w = (a_colour.g * 8.0)-5.5 + fract(uInfo.z+0.5);
    float c = -cos(w*0.2);
    float s = -sin(w*0.2);
    float r = 0.2;
 
-   float w1 = clamp( w*4.0 - a_co.y*10.0, -1.0, 1.0 ) *(3.14159265*0.5);
+   float w1 = clamp( w*4.0 - a_co.y*10.0, -1.0, 1.0 ) * (3.14159265*0.5);
    float c1 = cos(w1);
    float s1 = sin(w1);
 
@@ -30,8 +32,16 @@ void main()
    mlocal[2] = vec3(0.0,0.0,1.0);
    mlocal[3] = vec3(c*r,uInfo.y*0.875 + s*r,uInfo.x*0.5);
 
-   vec3 world_pos = uMdl * vec4(mlocal * vec4(a_co,1.0),1.0);
-   gl_Position = uPv * vec4( world_pos, 1.0 );
+   vec3 local_pos = mlocal * vec4( a_co, 1.0 );
+   vec3 world_pos = uMdl * vec4( local_pos, 1.0 );
+
+   vec4 vproj0 = uPv      * vec4( world_pos, 1.0 );
+   vec4 vproj1 = uPvmPrev * vec4( local_pos, 1.0 );
+
+   // Output
+   vs_motion_out( vproj0, vproj1 );
+
+   gl_Position = vproj0;
    aColour = a_colour;
    aUv = a_uv + vec2( floor(uInfo.z+0.5)*(1.0/64.0), yoff );
    aNorm = mat3(uMdl) * mat3(mlocal) * a_norm;