I see few mistakes in your code :
environment.set(new ColorAttribute(ColorAttribute.Specular, 0.4f, 0.4f, 0.4f, 0.6f));
It has no effect since specular should only used with materials. Maybe you wanted ambiant light. Then replace it by ColorAttribute.AmbientLight.
The main problem in your case is coordinates conversion from screen space to world space. ...