implemented diffuse source rendering with distance model