out vec4 FragColor; 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" void main() { vec3 vfrag = texture( uTexMain, aUv ).rgb; // Lighting vec3 halfview = uCamera - aWorldCo; float fdist = length( halfview ); halfview /= fdist; vfrag = do_light_diffuse( vfrag, aNorm ); vfrag = do_light_spec( vfrag, aNorm, halfview, 0.1 ); vfrag = do_light_shadowing( vfrag ); vfrag = apply_fog( vfrag, fdist ); float opacity = clamp( fdist, 0.1, 1.0 ); FragColor = vec4(vfrag,opacity); }