- // Specular lighting
- vec3 halfview = normalize( uCamera - aCo );
- vec3 specdir = reflect( -lightdir, qnorm );
- float spec = pow(max(dot(halfview,specdir),0.0),10.0) * 0.2*rgarbage.r;
- diffuse += spec * vec3(1.0,0.8,0.8);
+ if( g_light_preview == 1 )
+ {
+ vfrag = vec3(0.5);
+ }
+
+ // Lighting
+ vec3 halfview = uCamera - aCo;
+ 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 );