another bump mapping implementation