-out vec4 FragColor;
-
+uniform sampler2D uTexGarbage;
uniform sampler2D uTexMain;
-uniform vec4 uColour;
+uniform vec3 uCamera;
+uniform vec4 uPlane;
in vec4 aColour;
in vec2 aUv;
in vec3 aNorm;
in vec3 aCo;
+in vec3 aWorldCo;
+
+#include "common_world.glsl"
+#include "motion_vectors_fs.glsl"
void main()
{
- vec3 diffuse = texture( uTexMain, aUv ).rgb;
- float light1 = max(0.0,dot(-vec3(0.5,-0.8,0.25), aNorm));
- float light2 = max(0.0,dot(-vec3(-0.8,0.5,-0.25), aNorm));
- diffuse += vec3(0.2,0.2,0.2) +
- vec3(1.0,1.0,0.9)*light1 +
- vec3(0.1,0.3,0.4)*light2;
- FragColor = vec4(diffuse*uColour.rgb, aColour.a*uColour.a);
+ compute_motion_vectors();
+
+ vec3 vfrag = vec3(0.5,0.5,0.5);
+ vec4 vsamplemain = texture( uTexMain, aUv );
+ vec3 qnorm = normalize(aNorm);
+
+ vfrag = vsamplemain.rgb;
+
+ if( g_light_preview == 1 )
+ {
+ vfrag = vec3(0.5);
+ }
+
+ // Lighting
+ vec3 halfview = uCamera - aWorldCo;
+ float fdist = length( halfview );
+ halfview /= fdist;
+
+ vfrag = do_light_diffuse( vfrag, qnorm );
+ vfrag = do_light_spec( vfrag, qnorm, halfview, 0.1 );
+ vfrag = do_light_shadowing( vfrag );
+ vfrag = apply_fog( vfrag, fdist );
+
+ oColour = vec4(vfrag, 1.0);
}