sphere implementation with UV mapping