implemented bump mapping