uniform sampler2D uTexMain; uniform vec3 uCamera; 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() { compute_motion_vectors(); vec3 vfrag = texture( uTexMain, aUv ).rgb; // Lighting vec3 halfview = uCamera - aWorldCo; float fdist = length( halfview ); halfview /= fdist; fdist -= 0.08; vec3 qnorm = normalize(floor(aNorm*2.0)*0.5) + vec3(0.001,0.0,0.0); vec3 total_light = newlight_compute_ambient(); vec3 world_light = newlight_compute_world_diffuse( qnorm ); float world_shadow = newlight_compute_sun_shadow(); total_light += world_light * world_shadow; vfrag = apply_fog( vfrag * total_light, fdist ); float opacity = clamp( fdist*fdist, 0.0, 1.0 ); oColour = vec4(vfrag,opacity); }