- 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);
+ 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 );
+
+ FragColor = vec4(vfrag, 1.0);