- vec4 light_pos = light_sources[index].position;
- vec3 rel_pos = light_pos.xyz-world_pos*light_pos.w;
- float d = length(rel_pos);
- float attenuation = 1.0/dot(vec3(1.0, d, d*d), light_sources[index].attenuation);
- return IncomingLight(rel_pos/d, light_sources[index].color*attenuation);
+ if(use_alpha_cutoff)
+ {
+ if(alpha<params.cutoff)
+ discard;
+ float limit = min(params.cutoff+params.feather*fwidth(alpha), 1.0);
+ return smoothstep(params.cutoff, limit, alpha);
+ }
+ else
+ return alpha;