Implementing per-fragment point light with attenuation