Implementing per-vertex and per-fragment point lighting